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


이거 어캐품.


실버 상위권만 되도 응용이 필요하네.. 하



import sys
input=sys.stdin.readline
n,k=map(int,input().split())
coin=[]
for i in range(n):
coin.append(int(input()))


d=[0]*100
result=[]

for j in coin:
for i in range(1,100):
if i%j==0:
d[i]=i//j

for j in coin:
for i in range(1,100):
if i-j>0:
d[i]=min(d[i],d[i-j]+1)

if d[k]:
print(d[k])
else:
print(-1)