[알고리즘] 백준 12865 평범한 배낭

CHOI IN HO·2024년 4월 1일
0

코딩테스트

목록 보기
67/74

풀이

유명한 냅색 알고리즘을 통해서 dp 를 활용해 풀어주어야한다.

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

lst = [list(map(int, input().split())) for _ in range(n)]
dp = [[0]*(k+1) for _ in range(n+1)]
mx = 0

for i in range(1, n+1):
    for j in range(1,k+1):
        if j >= lst[i-1][0]:
            dp[i][j] = max(lst[i-1][1]+dp[i-1][j-lst[i-1][0]], dp[i-1][j])
        else:
            dp[i][j] = dp[i-1][j]
print(dp[n][k])
profile
개발자기 되기 위해선 무엇이든!

0개의 댓글