[백준] 13413번 오셀로 재배치

거북이·2023년 1월 16일
0

백준[실버4]

목록 보기
65/91
post-thumbnail

💡문제접근

고민을 많이 했던 문제였다. 갈피를 잡지 못해서 종이에 계속 그려가면서 규칙을 파악하다가 한참 지나고 나서야 규칙성을 찾을 수 있었다.

💡테스트케이스1

입력

WBBWW
WBWBW

  • 위의 경우에서는 B 1개를 W로 바꿔주면 된다. 따라서 1이 답이다.

출력

1

💡테스트케이스2

입력

BBBBBBB
BWBWBWB

  • 위의 경우에서는 B 3개를 W로 바꿔주면 된다. 따라서 3이 답이다.

출력

3

💡테스트케이스3

입력

WWBB
BBWB

출력

2

  • 위의 경우에서는 일치하지 않는 부분을 비교하면 W 2개, B 1개가 나온다. W 1개와 B 1개의 위치를 바꿔주면 1번, 그 다음 나머지 W를 B로 바꿔주면 1번이므로 총 2번이 나오게 된다.

  • 서로 일치하지 않는 부분을 비교해 리스트에 저장한 후 문자 빈도의 최댓값을 출력해주면 된다.

💡코드(메모리 : 31716KB, 시간 : 1124ms)

T = int(input())
for _ in range(T):
    arr = []
    N = int(input())
    before = input()
    after = input()

    for i in range(N):
        if before[i] != after[i]:
            arr.append(before[i])

    if arr.count("B") >= arr.count("W"):
        print(arr.count("B"))
    else:
        print(arr.count("W"))

💡소요시간 : 41m

0개의 댓글