https://www.acmicpc.net/problem/1475
- 티어 : Silver 5
- 시간 제한 : 2 초
- 메모리 제한 : 128 MB
- 알고리즘 분류 : 구현
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
1. 방 번호를 리스트에 담아 입력 받음
2. Dictionary로 각 숫자의 빈도 수를 셈
-> 6과 9는 하나의 key 사용
3. 입력이 끝난 후 6과 9에 대한 value // 2 + 1 하기
4. 최빈값 출력
N = input()
nums = {}
flag = 0 # 6이나 9가 포함되어있는 경우 1
for i in N:
if i == '6' or i == '9':
i = '6'
flag = 1
if i not in nums:
nums[i] = 1
else:
nums[i] += 1
# 6과 9의 value는 2로 나눔
if flag == 1:
if nums['6'] % 2 == 0:
nums['6'] = nums['6'] // 2
else:
nums['6'] = nums['6'] // 2 + 1
print(max(nums.values()))
메모리: 30864 KB
시간: 72 ms