문제
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)