강의

멘토링

커뮤니티

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

형준님의 프로필 이미지
형준

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

11. 최대점수 구하기(냅색 알고리즘)

오류 이유를 모르겠어요

작성

·

168

0

해설을 먼저 보지 않고 풀었는데 어디서 오류가 나는지 모르겠습니다.

n, m = map(int, input().split())
dy = [0] * (m + 1)
res = 0
for i in range(n):
    a, b = map(int, input().split())
    ch = [0] * (m + 1)
    dy[b] = a
    ch[b] = 1
    if a > res:
        res = a
    for j in range(1, m + 1):
        if j != b and dy[j] != 0:
            if j + b < m + 1 and ch[j + b] == 0:
                dy[j + b] = max(dy[j + b], dy[j] + a)
                ch[j + b] = 1
                if dy[j + b] > res:
                    res = dy[j + b]
print(res)

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

제가 드린 정답코드를 분석해보세요.

위에 코드는 올바른 방향의 코드는 아닌것 같습니다. 정답코드와 본인코드를 비교분석해 보시는 것도 좋은 공부가 될 겁니다.

형준님의 프로필 이미지
형준

작성한 질문수

질문하기