# 2293번 : 동전1 n,k = map(int,input().split()) coins=[] for _ in range(n): coins.append(int(input())) dp = [0 for i in range(k+1)] dp[0] = 1 for i in coins: for j in range(1, k + 1): if j - i >= 0: dp[j] += dp[j - i] print(dp[k]) 동적계획법(Dynamic Programming)알고리즘을 풀 때에는 항상 아래의 내용을 확인하면서 풀어야 한다. 중복되는 서브문제(overlapping subproblem) : 큰 문제를 작은 문제로 쪼갤 수 있어야한다. 즉 전체의 문제를 같은 방법이지만 부분문제로 나누어야 하며 이를 통해 나오는 부분문..