본문 바로가기

IT/Python

[백준] 1475번 방 번호 [Python]

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