ABC221 C - Select Mul이 풀렸다 + 덤 B 문제






전 탐색하면, "0"이 머리라든지 관계 없을까.
이번에는 최대치를 갖고 싶어서.

그런 다음 입력을 문자로받습니다.
자리의 중앙에서 분할하고, 곱해 합쳐 최대치를 낳는다.

SelectMul.py
N = list(input())

from itertools import permutations
ans = 0
for i in permutations(N,len(N)):
    nums = list(i)
    A = int( "".join(nums[:len(N)//2]))
    B = int( "".join(nums[len(N)//2:]))
    if ans < A*B:
        ans = A*B
print(ans)

입력을 중앙을 분할한 A, B를 곱하면 최대값이 되는 근거는
특히 자신 안에 없었지만, 거기는 분위기에서 대응했다.
운이 좋았을까.



1 회가 아니라 2 회 이상이면 No라는 바람에
쓰고 WA를 당겼다.

그렇다, 패인은 이웃하는 요소에 대해 높게 1회인 것이다.
죄송합니다.

당일은 이하로 다녔다.

typo_r0.py
S = list(input())
T = list(input())
S_ = sorted(S)
T_ = sorted(T)
for a, b in zip(S_, T_):
    if a != b:
        print("No")
        exit()

cnt = 0
i = 0
lis = []
for s, t in zip(S, T):
    if s != t:
        lis.append(i)
        cnt += 1
        if cnt > 2:
            print("No")
            exit()
    i += 1

for i in range(len(lis)-1):
    if lis[i+1]-lis[i] != 1:
        print("No")
        exit()

print("Yes")

B에서 WA를 당기면 초조함
다시 고치기 위해서 한 개 한 개 부서면서 정중하게 쓰고 있는 모습을 볼 수 있다(웃음)
나중에 주변 답변을 읽고
재미있는 설명이 있었기 때문에 칠라를 본 후,
이미지하면서 써 보았다.

type_r1.py
S = list(input())
T = list(input())

for i in range(len(S)-1):
    if S[i] != T[i]:
        if S[i] == T[i+1] and S[i+1] == T[i]:
            if i+1 == len(S)-1 or S[i+2:] == T[i+2:]:# <= ココ
                print("Yes")
                exit()
            else:
                print("No")
                exit()
        else:
            print("No")
            exit()
print("Yes")

위의 코멘트에있는 코코가 훌륭했습니다.
구체적으로 S[i+2:] == T[i+2:].
교환 후의 캐릭터 라인이 일치하면 print ( "Yes").
그거야.

공부가 되었습니다 m(_ _)m

C도 다시 했지만 B도 다시 했다.
두 개의 연속 문자에 대해 S, T 모두
다른 경우에는 1 반전시킨다.
만약을 위해 반전 횟수는 세어 둔다.

반전 횟수가 2회 이상이면 필연적으로 No
반전 횟수가 1 회 이하이고 S == T이면 Yes.

다음과 같은 답변도 써서 재미있다고 생각했다.

abc221c.py
S = list(input())
T = list(input())
cnt = 0
def check(S,T):#S==T or S != T を確認
    for s,t in zip(S,T):
        if s != t:
            return False
    return True

for i in range(len(S)-1):#連続する文字が異なる場合、反転
    if S[i] != T[i] and S[i+1] != T[i+1]:
        if S[i] == T[i+1] and S[i+1] == T[i]:
            T[i],T[i+1] = T[i+1],T[i]
            cnt += 1 #<= 反転回数を数える

if cnt <= 1 and check(S,T):
    print("Yes")
else:
    print("No")

좋은 웹페이지 즐겨찾기