https://www.acmicpc.net/problem/1475
문제 풀이
전체 필요한 세트의 합을 구하는게 아닌, 필요한 세트 개수의 최소값을 구하는 문제입니다.
1. 0으로 채워진 길이 9의 list를 만들고, n 길이 만큼의 for loop를 돌립니다 (n이 9999일 경우엔 각각의 9).
2. 만약 9가 나오면 6으로 바꿔주고, 위에서 만들어진 list에서 6이 있는 자리 (cnt[6])에 1을 더해줍니다.
3. for loop가 끝난 뒤, 더해준 1들의 값에 1을 더하고 (n이 홀수인 경우 한세트를 더 사야하기 때문에), 2를 나눠줍니다.
4. 이후 해당 수를 max를 통해 반환해줍니다.
n = input()
cnt = [0] * 9
for x in n:
ind = int(x)
if ind == 9:
ind = 6
cnt[ind] += 1
cnt[6] = (cnt[6]+1) // 2
print(max(cnt))
'Algorithm' 카테고리의 다른 글
[파이썬] 백준: 토너먼트 (0) | 2021.07.13 |
---|---|
[파이썬] 프로그래머스: 2016년 (0) | 2021.07.09 |
[파이썬] 백준 1927번, 11279번, 11286번: 최소 힙, 최대 힙, 절대값 힙 (0) | 2021.07.06 |
[파이썬] 백준 1676번: 팩토리얼 0의 개수 (0) | 2021.07.05 |
[파이썬] 프로그래머스: 모의고사 (0) | 2021.07.04 |