1부터 탐색하며 이전 가치에서 동전을 하나 추가했을때 최솟값 찾아서 갱신import sys
input = sys.stdin.readline
n, k = map(int, input().split())
coins = []
dp = [10001] * (k + 1)
dp[0] = 0
for _ in range(n):
coin = int(input())
coins.append(coin)
for i in range(1, k + 1):
for coin in coins:
if i - coin >= 0:
dp[i] = min(dp[i], dp[i - coin] + 1)
if dp[k] == 10001:
print(-1)
else:
print(dp[k])
O(NK)