방 번호
포스트
취소

방 번호

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

문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

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

출력

첫째 줄에 필요한 세트의 개수를 출력한다.

예제

입력 1

1
9999

출력 1

1
2

입력 2

1
122

출력 2

1
2

입력 3

1
12635

출력 3

1
1

입력 4

1
888888

출력 4

1
6

풀이

이 문제의 핵심은 6과 9는 서로 뒤집어서 사용할 수 있다는 점입니다. 따라서 6과 9를 동일하게 간주하여 카운트할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
N = input()

# 0~9까지의 숫자에 대한 카운트를 저장하는 리스트
count = [0]*10

for n in N:
    # 숫자가 6이나 9일 경우
    if n == '6' or n == '9':
        # 6과 9의 카운트를 비교하여 더 적은 쪽에 카운트를 증가
        if count[6] > count[9]:
            count[9] += 1
        else:
            count[6] += 1
    # 6과 9가 아닌 다른 숫자는 해당 숫자의 카운트 증가
    else:
        count[int(n)] += 1

# 카운트 중 가장 큰 값이 필요한 세트의 최솟값이 됨
print(max(count))
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.