백준 2293번 동전1 n, k = map(int, input().split()) c = [] dp = [0 for i in range(k + 1)] dp[0] = 1 for i in range(n): c.append(int(input())) for i in c: for j in range(1, k + 1): if j - i >= 0: dp[j] += dp[j - i] print(dp[k]) 핵심 아이디어 k길이의 배열을 만들고, 각 원소 별 경우의 수를 계산하여 k가 되는 경우의 수를 구한다. 설명 dp 배열에서 원소를 dp[key] = value 라고 한다면, key : 1, 2, 3, ... k value : key를 만들 수 있는 경우의 수 예를 들어 [1, 2, 5] coin을 가지고 k = 4..