Algorithm Problems

[백준] [Python] 2294번 동전2 - DP

WakaraNai 2021. 6. 27. 20:22
728x90
반응형

https://www.acmicpc.net/problem/2294

 

2294번: 동전 2

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주

www.acmicpc.net

 

 

Python

#import math
import sys
input = sys.stdin.readline

n, m = map(int, input().split())
coins = list(set([ int(input()) for _ in range(n)]))
coins.sort()

nums = [float("inf")]*(m+1)
nums[0] = 0

for x in range(1, m+1):
    for c in coins:
        if x-c >= 0:
            nums[x] = min(nums[x], nums[x-c]+1)

    
if nums[m] == float("inf"):
    print(-1)
else:
    print(nums[m])
728x90
반응형