728x90
https://www.acmicpc.net/problem/1475
실버5 - 구현
1. 문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
2. . 아이디어
1)딕셔너리를 이용해서 가장 많이 나온 숫자를 찾는다.
2) 6,9는 따로 계산한다.
3. 코드
import math
room_num = input()
result = 0
count = {}
for num in room_num:
if num in count:
count[num] += 1
else:
count[num] = 1
max_num = 0
six_nine = 0
for key in count:
if key != '6' and key != '9':
if count[key] > max_num:
max_num = count[key]
else:
six_nine += count[key]
six_nine_sets = math.ceil(six_nine/2)
result = max(max_num, six_nine_sets)
print(result)
4. 딕셔너리 문법 정리
1) dict.get(key)
주어진 키에 대응하는 값 반환
2) dict.keys()
딕셔너리 모든 키 반환
3) dict.values()
딕셔너리의 모든 값 반환
4) dict.items()
딕셔너리의 모든 키-값 쌍을 튜플 형태로 반환
5) 특정 키-값 접근
dict[key]
6) 키 존재 확인(Boolean 반환)
key in dict
-> 존재하면 True 반환, 없으면 False 반환
7) 키만 순회
for key in dict.keys()
8) 값만 순회
for value in dict.values()
9) 키,값 모두 순회
for key, value in dict.items()
728x90
'알고리즘&자료구조 > Algorithm' 카테고리의 다른 글
백준 1316 - 그룹 단어 체커 (0) | 2024.07.26 |
---|---|
백준 1268 - 임시 반장 정하기 (0) | 2024.07.26 |
백준 1157 - 단어공부 (0) | 2024.05.23 |
백준 1018 - 체스판 다시 칠하기 (0) | 2024.05.20 |
백준 1085 - 직사각형에서 탈출 (0) | 2024.05.19 |