인프런 커뮤니티 질문&답변

민경님의 프로필 이미지
민경

작성한 질문수

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

기억 ( 탑다운 DP, 메모이제이션 )

12865 배낭문제

해결된 질문

작성

·

408

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
민경님의 프로필 이미지
민경

작성한 질문수

질문하기