본문 바로가기

Algorithm

[파이썬] 백준 1475번: 방번호

https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

www.acmicpc.net

문제 풀이

전체 필요한 세트의 합을 구하는게 아닌, 필요한 세트 개수의 최소값을 구하는 문제입니다.

1. 0으로 채워진 길이 9의 list를 만들고, n 길이 만큼의 for loop를 돌립니다 (n이 9999일 경우엔 각각의 9).

2. 만약 9가 나오면 6으로 바꿔주고, 위에서 만들어진 list에서 6이 있는 자리 (cnt[6])에 1을 더해줍니다.

3. for loop가 끝난 뒤, 더해준 1들의 값에 1을 더하고 (n이 홀수인 경우 한세트를 더 사야하기 때문에), 2를 나눠줍니다.

4. 이후 해당 수를 max를 통해 반환해줍니다.

 

n = input()
cnt = [0] * 9
for x in n:
    ind = int(x)
    if ind == 9:
        ind = 6
    cnt[ind] += 1
cnt[6] = (cnt[6]+1) // 2
print(max(cnt))