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가 됩니다.