📝 문제
💡 다솜이는 은진이의 옆집에 새로 이사왔다.
다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다.
한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다.
다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오.
(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
⚙️ 입력 : 첫째 줄에 다솜이의 방 번호 N이 주어진다.
N은 1,000,000보다 작거나 같은 자연수이다.
⚙️ 출력 : 첫째 줄에 필요한 세트의 개수를 출력한다.
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
✅ 풀이
n = input()
a = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0}
for i in range(len(n)):
if n[i] in ['6', '9']:
a['6'] += 1
else:
a[n[i]] += 1
if a['6'] % 2 == 0:
a['6'] = a['6'] // 2
else:
a['6'] = a['6'] // 2 + 1
print(max(a.values()))
💡 우선 9를 제외한 나머지 숫자들을 전부 인덱스로 가지는 딕셔너리를 만들었다.
방 번호에 나오는 숫자에 따라서 해당 인덱스의 값을 1씩 올렸는데,
6과 9의 경우는 동일 케이스로 취급해서 6으로 세주었다.
그 다음, 6을 두번 카운팅 했기 때문에,
6이 짝수면 2로 나눈 값을, 홀수면 2로 나눈 값에 1을 더해 주었다.
마지막으로 가장 많이 사용된 숫자의 갯수 만큼 세트를 구매하면 된다.