본문 바로가기

카테고리 없음

[백준/파이썬] 1475번: 방 번호 (Python)

문제

www.acmicpc.net/problem/1475

 

1475번: 방 번호

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

www.acmicpc.net

풀이

 - 구현

 

 - 0부터 9까지 인덱스를 가지는 리스트를 만들고 방 번호의 숫자의 개수를 넣어준다

 

 - 반복문을 통해 한 세트일 때마다 리스트의 값을 1씩 감소시켜주고

 

 - 6 과 9는 arr[6]에 몰아서 담아주고, arr[6]은 홀수 이면 2세트 이상이기 때문에 2로 나누어 떨어질 경우에 2감소, 2로 나누어 떨어지지 않을 경우 1감소시켜준다

 

 - 한 세트를 돌면 cnt를 증가시켜준다

코드

n = list(map(int, input()))  # 9999

arr = [0 for _ in range(10)] # [0,0,0,0,0,0,0,0,0]

for i in range(len(n)):
    arr[n[i]] += 1	# [0,0,0,0,0,0,0,0,0,9]

arr[6] += arr[9]
arr[9] = 0

cnt = 0
 
while sum(arr) > 0:
    for i in range(len(arr)):
        if arr[i] > 0 and i != 6:
            arr[i] -= 1
        if arr[i] > 0 and i == 6:
            if arr[i] % 2 == 0:
                arr[i] -= 2
            else:
                arr[i] -= 1
    cnt += 1 # 세트 1 증가

print(cnt)