실험실
  • [백준] 12865번: 평범한 배낭 - 파이썬
    2024년 11월 26일 18시 09분 44초에 업로드 된 글입니다.
    작성자: B1NK
    728x90

    문제

    이 문제는 아주 평범한 배낭에 관한 문제이다.

    입력

    첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)가 주어진다.

    출력

    한 줄에 배낭에 넣을 수 있는 물건들의 가치합의 최댓값을 출력한다.

    코드

    import sys
    input = sys.stdin.readline
    
    N, K = map(int, input().split())
    bag = [list(map(int, input().split())) for _ in range(N)]
    dp = [[0]*(K+1) for _ in range(N+1)]
    
    for i in range(1,N+1):
        for j in range(1,K+1):
            if j >= bag[i-1][0]:
                dp[i][j] = max(bag[i-1][1]+dp[i-1][j-bag[i-1][0]],dp[i-1][j])
            else:
                dp[i][j] = dp[i-1][j]
    
    print(dp[N][K])
    728x90
    댓글