https://www.acmicpc.net/problem/12865
n, k = map(int, input().split())
d = [[0 for _ in range(k+1)] for _ in range(n)]
for i in range(n):
w, v = map(int, input().split())
for j in range(1, k+1):
if j < w:
d[i][j] = d[i-1][j]
else:
d[i][j] = max(v + d[i-1][j-w], d[i-1][j])
print(max(d[n-1]))
정리할 자신이 없어서 그냥 스케치하던 거 올림 ㅠ
'알고리즘 > 백준' 카테고리의 다른 글
백준 1504: 특정한 최단 경로 (Python) (0) | 2022.07.12 |
---|---|
백준 1753: 최단경로 (Python) (0) | 2022.07.12 |
백준 1912: 연속합 (Python) (0) | 2022.04.08 |
백준 11053: 가장 긴 증가하는 부분 수열 (Python) (0) | 2022.04.07 |
백준 2156: 포도주 시식 (Python) (0) | 2022.04.07 |