반응형
[문제 출처]
https://www.acmicpc.net/problem/17212
17212번: 달나라 토끼를 위한 구매대금 지불 도우미
달나라 토끼들이 사용하는 화폐는 동전뿐이다. 동전의 종류는 1원, 2원, 5원, 7원 이렇게 4종류가 있다. 물건을 사고 동전으로 계산을 하는데 동전의 개수가 최소가 되도록 지불하지 않는 것은
www.acmicpc.net
[문제 풀이]
1,2,5,7원짜리 동전들을 이용하여 최소 개수의 동전을 사용하는 경우의 동전 개수를 구하는 문제이다.
우선 1원짜리 i원은 i개의 동전으로 지불할 수 있다. 따라서 리스트를 i로 초기화한다.
후에 1,2,5,7원 적은 경우 중에 어떤 경우가 가장 적은 동전을 사용했는지 판단하고 그 경우 +1을 dp[n]으로 정한다.
import sys
input = sys.stdin.readline
n = int(input())
dp = [e for e in range(n+1)]
for i in range(2,n+1):
dp[i] = dp[i-1] + 1
if i >= 2:
dp[i] = min(dp[i], dp[i-2]+1)
if i >= 5:
dp[i] = min(dp[i], dp[i-5]+1)
if i >= 7:
dp[i] = min(dp[i], dp[i-7]+1)
print(dp[n])
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 11060 점프 점프 (0) | 2022.07.18 |
---|---|
[python/파이썬] 백준 1660 캡틴 이다솜 (0) | 2022.07.15 |
[python/파이썬] 백준 17175 피보나치는 지겨웡~ (0) | 2022.07.14 |
[python/파이썬] 백준 9461 파도반 수열 (0) | 2022.07.14 |
[python/파이썬] 백준 1003 피보나치 함수 (0) | 2022.07.13 |