BAEKJOON #1475 방번호

2020. 4. 1. 15:38개발노트

이 문제의 저작권은 BAEKJOON에 있습니다.

https://www.acmicpc.net/problem/1475

문제는 위 링크에서 확인할 수 있습니다.

N = input()
my_dict = dict()
for i in range(0, 10):
    my_dict[i] = 0

for s in N:
    s = int(s)
    if s == 6 and my_dict[s] > my_dict[9]:
        my_dict[9] += 1
    elif s == 9 and my_dict[s] > my_dict[6]:
        my_dict[6] += 1
    else:
        my_dict[s] += 1
print(max(my_dict.values())) 

풀이

숫자 세트는 6과 9가 함께 쓰일 수 있습니다. 6이 9가되고 9가 6이 되기도 합니다.
그렇기 때문에 딕셔너리에 모든 수를 넣으면서 숫자가 6일 때 9가 나온 횟수가 적다면 9의 횟수를 늘려주고
반대로 9일 때 6이 나온 횟수가 적다면 6의 횟수를 늘렸습니다.

예를 들어 '9999' 라는 숫자가 입력되면 아래와 같은 딕셔너리가 됩니다.

{0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 2, 7: 0, 8: 0, 9: 2}

숫자가 나온 횟수의 최댓값이 2이기 때문에 '9999'를 넣었을 때 출력될 값은 2가 됩니다.