이 문제도 dp문제이다. dp 문제는 참 풀이를 떠올리기 너무 어려운 것 같다.
혼자 풀다가 정 안되서 다른 분의 풀이를 참고하여 문제를 풀었다.
https://mong9data.tistory.com/68
해당 블로그 분의 풀이가 굉장히 상세하게 잘 쓰여져 있어 쉽게 이해할 수 있었다.
n, k = map(int,input().split())
coins = []
for _ in range(n):
coins.append(int(input()))
dp = [0] * (k+1)
dp[0] = 1
for coin in coins:
for j in range(coin, k+1):
if j - coin >= 0:
dp[j] += dp[j-coin]
print(dp[k])