다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
첫째 줄에 필요한 세트의 개수를 출력한다.
9999
2
122
2
12635
1
888888
6
숫자 세트에는 각 숫자들이 하나씩만 들어있기 때문에, 동일한 숫자가 등장하는 최대 횟수를 구하면 숫자 세트 몇 개가 필요한지 알 수 있습니다.
단, 6과 9는 서로의 수로 변경되어 사용될 수 있기 때문에 6과 9는 두 수를 합쳐서 필요한 개수를 구하여 예외 처리를 해줍니다.
import math
import sys
N = sys.stdin.readline().strip()
arr = [0 for _ in range(10)]
for n in N:
arr[int(n)] += 1
arr[6] = arr[9] = math.ceil((arr[6] + arr[9]) / 2)
print(max(arr))
N : 다솜이의 방 번호arr : 0부터 9까지의 숫자들이 각각 몇 개가 필요한지를 저장하는 리스트입력된 방 번호를 하나씩 확인하며 각 숫자들이 필요한 개수를 arr 리스트에 저장합니다.
6과 9의 경우에는 서로 바꿔서 사용될 수 있기 때문에, 6과 9의 개수는 둘을 합하고 2로 나눈 수로 저장해줍니다.
최종적으로 필요한 개수가 가장 많은 숫자의 개수만큼의 숫자 세트가 필요합니다.