https://www.acmicpc.net/problem/9084
1. 배낭 문제이다. 점화식은 현재까지 가능한 개수에 현재 동전을빼준값에 가능한 개수를 더한다.
dp[i] = dp [i] + dp [j-x]이다.
T = int(input())
while T:
T -= 1
n = int(input())
coin = [0] + list(map(int, input().split()))
goal = int(input())
dp = [0 for _ in range(goal+1)]
dp[0] = 1
for i in range(1, n+1):
for j in range(coin[i], goal+1):
dp[j] += dp[j-coin[i]]
print(dp[goal])
'알고리즘 > BOJ' 카테고리의 다른 글
[Python] 백준 2056번: 작업 (0) | 2021.10.06 |
---|---|
[Python] 백준 20040번: 사이클 게임 (0) | 2021.10.06 |
[Python] 백준 7579: 앱 (0) | 2021.10.04 |
[Python] 백준 5582: 공통 부분 문자열 (0) | 2021.10.04 |
[Python] 백준 14226: 이모티콘 (0) | 2021.10.04 |
댓글