강의

멘토링

커뮤니티

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

yokxim님의 프로필 이미지
yokxim

작성한 질문수

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

3. 뮤직비디오(결정알고리즘)

def Check(capacity):에서 질문이 있습니다.

작성

·

239

0

영상에 보여진 함수는 이것입니다.

def Count(capacity):

    cnt = 1

    plus = 0

    for x in music:

        if plus + x > capacity:

            cnt += 1

            plus = x

        else:

            plus += x

    return cnt

그리고 제가 스스로 만들어 봤던 함수는 이것인데요.

def Check(capacity):

    cnt = 1

    plus = 0

    for x in music:

        plus += x

        if plus == capacity:

            cnt += 1

            plus = 0

        elif plus > capacity:

            cnt += 1

            plus = x

    return cnt

검토를 해 보았는데 몇 문제는 맞췄으나 3개정도는 답이 1씩 차이가 났습니다.

예를 들어서 예제로 나와있는 9 3 (1 2 3 4 5 6 7 8 9)를 넣으면 답은 17이지만 제가 만든 함수로 계산하면 18이 나옵니다.

저 두 함수를 만드는 과정이 저는 같다고 생각했는데, 어디가 잘못된 건지 알려주시면 감사합니다 ㅜㅜ

답변 1

2

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

plus와 capacity가 같았을 때는 현재 음악을 현재 담고 있는 DVD에 담을 수 있다는 것입니다. cnt를 증가시키면 안됩니다.

9 3 (1 2 3 4 5 6 7 8 9) 입력을 가지고 본인 코드를 디버그해보세요. 8과 9를 처리할 때 cnt카운팅이 논리적으로 맞는지 확인해보시기 바랍니다.

yokxim님의 프로필 이미지
yokxim

작성한 질문수

질문하기