Processing math: 100%
본문 바로가기

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