문제
https://www.acmicpc.net/problem/2293
2293번: 동전 1
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.
www.acmicpc.net
코드
import sys
input=sys.stdin.readline
n,k=map(int, input().split())
dp=[0]*(k+1)
c=[]
for _ in range(n):
c.append(int(input()))
dp[0]=1
for i in c:
for j in range(1,k+1):
if j-i>=0:
dp[j]+=dp[j-i]
print(dp[k])
생각 정리
dp[0] | dp[1] | dp[2] | dp[3] | dp[4] | dp[5] | dp[6] | |
i = 1 | 개수(1) | 1 개수(1) |
1 + 1 개수(1) |
1 + 1 + 1 개수(1) |
1 + 1 + 1 + 1 개수(1) |
1 + 1 + 1 + 1 + 1 개수(1) |
1 + 1 + 1 + 1 + 1 + 1 개수(1) |
i = 2 | 2 개수(1) |
1 + 2 개수(1) |
1 + 1 + 2 2 + 2 개수(2) |
1 + 1 + 1 + 2 1 + 2 + 2 개수(2) |
1 + 1 + 1 + 1 + 2 1 + 1 + 2 + 2 2 + 2 + 2 개수(3) |
||
i = 5 | 5 개수(1) |
5 + 1 개수(1) |
'문제풀이 > DP' 카테고리의 다른 글
[파이썬] [DP] 백준 11049 행렬 곱셈 순서 (0) | 2022.12.21 |
---|---|
[파이썬] [DP] 백준 9184 신나는 함수 실행 (0) | 2022.04.24 |
[파이썬] [DP] 백준 9251 LCS (0) | 2022.03.26 |
[파이썬] [DP] 백준 11066 파일 합치기 (0) | 2022.03.14 |
[파이썬] [DP] 백준 2579 계단 오르기 (0) | 2022.02.24 |