inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

12865 배낭문제

해결된 질문

536

리치리치뱅뱅

작성한 질문수 1

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 

 

python 코딩-테스트 알고리즘

답변 1

1

코딩 센세

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

 

ans

dp[x]가 최대값이라고 확신할수 있는 이유

0

44

1

1090번 문제 질문

0

150

1

유니온파인드

0

112

1

투포인터 25:15 질문

1

128

1

#1090번 문제 반례가 궁금합니다.

0

148

1

예제코드 자바입니다

1

186

1

정수론 파트 #2247 문제에 대한 질문입니다!

0

102

0

코드 오류

0

185

1

2강 정수론 문제3 #1407 질문

0

126

0

이차원 배열 (int형)dp로 0 혹은 -1로 체크하는 방법 말고 boolean형 배열로 체크해서 바로 리턴해줄 수 없나요?

0

154

0

1717번 최적화

0

112

0

백준 22988 문제 질문

1

193

2

[Python] 백준 1090번 문제

1

226

3

강의자료에서

1

162

2

2503 문제 제한 조건 질문!

1

249

2

백준 22988 번 문제

1

193

1

추가 강의 순서

1

180

2

(*문제 풀이)1090 테스트케이스 1번 C++

1

221

2

7강 RGB 색칠하기 질문 있습니다.

1

160

2

정수론 약수 빠르게 구하기 질문

1

257

1

1090 문제의 2, 3번째 아이디어는 결국 같은거 아닌가요?

1

373

2

1090 문제 관련하여 맨해튼 거리 최솟값에 대해 질문 있습니다.

1

223

2

누적합 문제 3번 질문

1

216

2

기억 ( 누적합 ) 강의 11660 문제

1

163

2