해결된 질문
23.10.05 04:43 작성
·
339
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