문제풀이/백준(Boj) 문제풀이

[백준][동적 계획법1] 12865. 평범한 배낭 (파이썬/Python)

얄루몬 2021. 10. 6. 21:07

n, k = map(int, input().split())

wv = [[0,0]]
dp = [[0]*(k+1) for _ in range(n+1)]

for i in range(n):
    wv.append(list(map(int, input().split())))

for i in range(1, n+1):
    for j in range(1, k+1):
        w = wv[i][0]
        v = wv[i][1]

        if j < w:
            dp[i][j] = dp[i-1][j]
        else:
            dp[i][j] = max(dp[i-1][j], dp[i-1][j-w]+v)

print(dp[n][k])