알고리즘 문제풀이
달나라 토끼를 위한 구매대금 지불 도우미(백준 17212)
wiojfe
2023. 8. 9. 15:48
다이나믹 프로그래밍을 사용하는데 동전의 값으로 나누어 떨어지는 지 안 떨어지는 지 경우를 나누고
배열을 완성하면 된다.
import sys
input = sys.stdin.readline
n= int(input())
arr= [i for i in range(n+1)]
coins =[1,2,5,7]
# print(arr)
for coin in coins :
if coin == 1 :
continue
for k in range(1,n+1):
if coin <= k :
if( k% coin ==0) :
arr[k] = min((k//coin),arr[k-coin]+1 )
else :
arr[k] = min(arr[k] ,arr[k-coin]+1 )
print(arr[-1])