• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

12865 배낭문제

23.10.05 04:43 작성 조회수 255

1

안녕하세요! 제 6강을 수강하고 탑다운 DP 문제 중 냅색문제를 백준에서 풀었을 때 계속 런타임에러가 나네요 ㅠ 혹시 이유를 알 수 있을까요 ? 제가 작성한 코드는 다음과 같습니다.

#물건의 수 n와 배낭의 무게 k
n,k = map(int,input().split())

#순서대로 배낭의 무게 w와 가치 v
item = [list(map(int,input().split())) for _ in range(n)]

dp = [[-1 for _ in range(10*6)] for _ in range(n)]

#모든 경우의 수 생각하기
def bag(idx , weight ) :

    if weight > k :
        return -999

    if idx == n :
        return 0
    
    if dp[idx][weight] != -1 :
        return dp[idx][weight]

    #물건을 넣은 경우와 넣지 않은 경우를 비교해준다 
    dp[idx][weight] = max( bag(idx+1 , weight + item[idx][0]) + item[idx][1] , bag(idx+1 , weight))

    return dp[idx][weight]

ans = bag(0,0)
ans 

 

답변 1

답변을 작성해보세요.

0

혹시, 마지막 줄에 ans라고 적힌건 print(ans)로 고쳐서 제출 하셨나요?

 

ans