728x90
방 번호 숫자를 만들기 위해 필요한 0~9 숫자 세트 개수 구하기
더보기
문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. $($6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.$)$
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
입력 받은 문자를 리스트로 바꾸면서 digit별로 구분해서 각 문자$($숫자$)$의 개수를 list.count$($문자$)$로 세고,
6과 9를 위해 필요한 숫자 세트의 개수는 6과 9의 개수를 더해서 2로 나눈 실수 값의 올림으로 구하고
max 함수를 사용해서 최댓값을 구했습니다.
math.ceil$()$ 함수로 올림을 구했습니다.
import sys
from math import ceil # 올림 함수
input = sys.stdin.readline()
N = list(i for i in input.strip())
di = {} # 6과 9의 경우를 고려해 list나 set보다는 dict를 선택함
for j in range(10):
j = str(j)
if j == '9':
# 6과 9의 경우 고려
di['6'] = ceil((di['6'] + N.count('9')) / 2)
else: di[j] = N.count(j)
print(max(di.values())) # 최대값 출력
더보기
예제 입력 1
9999
예제 출력 1
2
예제 입력 2
122
예제 출력 2
2
예제 입력 3
12635
예제 출력 3
1
예제 입력 4
888888
예제 출력 4
6
'IT > Python' 카테고리의 다른 글
[백준] 15654, 15655번 N과 M[5, 6] [Python] - 순열, 조합 (0) | 2023.08.02 |
---|---|
[백준] 11726번 2×n 타일링 [Python] (0) | 2023.08.02 |
[백준] 10845번 큐 [Python] (0) | 2023.08.01 |
[백준] 10866번 덱 [Python] (0) | 2023.08.01 |