문제
방번호에 필요한 세트 수 를 출력하면 된다. 한 세트는 0~9의 숫자이고 6, 9는 서로 뒤집어 사용할 수 있다.
풀이
import collections
n=input()
d=collections.defaultdict(int)
for x in n:
x=int(x)
if x!=6 and x!=9: d[x]+=1
else:
if d[6]>d[9]:d[9]+=1
else: d[6]+=1
res = list(d.values())
res.sort(reverse=True)
print(res[0])
default 딕셔너리를 사용해 구현하였다.
6, 9 가 아닌 경우는 세트 값을 추가하고 6 혹은 9일 경우엔 적은 수를 더해가며 세트를 추가했다.
딕셔너리의 values 를 리스트화 시켜 정렬 후 가장 큰 값 (세트)을 출력했다.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
백준 11047 : 동전0 (Greedy, Python) (0) | 2022.05.29 |
---|---|
백준 1654: 랜선자르기 (Python) - 이진탐색 알고리즘 (0) | 2022.04.22 |
백준 1012: 유기농 배추 (Python) - bfs/ 런타임 에러 (RecursionError), 시간초과 해결 (0) | 2022.03.20 |
백준 2667: 단지번호붙이기 (Python, C++) - dfs (0) | 2022.03.20 |
백준 2606: 바이러스 (Python, C++) - dfs (0) | 2022.03.20 |