본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 2596번 비밀편지

by 현장 2022. 5. 28.

-Code

pa = ["000000", "001111", "010011",
      "011100", "100110", "101001",
      "110101", "111010"]
alpa = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
n = int(input())
messages = input()
message_cut = [messages[i * 6:i * 6 + 6] for i in range(n)]
res = ""
pos = 0
for mes in message_cut:
    no = 0
    for p in pa:
        cnt = 0
        for i in range(6):
            if mes[i] == p[i]:
                cnt += 1
            else:
                pos = max(pos, cnt)
        if cnt >= 5:
            res += alpa[pa.index(p)]
            break
        else:
            no += 1
    if no == 8:
        print(message_cut.index(mes) + 1)
        exit()
print(res)

한 숫자가 틀린 경우를 못 보고 딕셔너리를 사용하여 풀었으나 값이 다르게 나와 시간을 많이 사용했습니다. 검색을 한 후 문제를 잘 못 읽었음을 알게 되고 딕셔너리는 각각의 원소를 비교하지 못하기 때문에 다른 방식으로 풀게 되었습니다.