방 번호
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 라이센스를 따릅니다.