Python/알고리즘
동전 2 (백준 2294, 파이썬)
임풀
2019. 9. 10. 15:27
반응형


다이나믹 프로그래밍 문제다.
d[n] = n원을 만들기 위해 사용하는 동전의 최소 개수로 두고 짰다.
k원을 만들기 위해 필요한 동전 수는 d[k]가 된다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import sys
n, k = map(int, sys.stdin.readline().split())
coin = []
for i in range(n):
coin.append(int(sys.stdin.readline()))
coin.sort()
d = [0]*(k+1)
for i in range(coin[0], k+1):
temp = []
if i in coin:
d[i] = 1
else:
for j in coin:
if i-j >= coin[0]:
if d[i-j] != -1:
temp.append(d[i-j]+1)
if len(temp) >0:
d[i] = min(temp)
else:
d[i] = -1
print(d[k])
|
반응형