📝 문제
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
📜 풀이
- 문제의 핵심은 '6과 9는 서로 뒤집어서 사용할 수 있다'는 것임
- 즉, 6과 9를 제외한 나머지 수들은 방 번호에 나타나는 개수대로 세어주기만 하면 그만이고, 6과 9의 경우 최빈값 배열에서 둘 중 더 적게 나타난 값만 세어주면 된다.
- 이후 최빈값 배열에서 최댓값을 찾아 출력하면, 그 값이 우리가 찾는 필요한 세트의 개수의 최솟값이 된다.
💻 소스코드
num = list(map(int, input().rstrip()))
cnt = [0] * 10
for i in num:
if i == 6 or i == 9:
if cnt[6] <= cnt[9]:
cnt[6] += 1
else: cnt[9] += 1
else: cnt[i] += 1
print(max(cnt))
'🥇 Problem Solving > Simulation' 카테고리의 다른 글
[Python] BOJ / 5430번 / AC (0) | 2023.05.03 |
---|---|
[Python] BOJ / 14500번 / 테트로미노 (0) | 2023.05.01 |
[Python] BOJ / 15686번 / 치킨 배달 (0) | 2023.04.30 |
[Python] BOJ / 2108번 / 통계학 (0) | 2023.04.30 |
[Python] BOJ / 1966번 / 프린터 큐 (1) | 2023.04.30 |