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

밑바닥개발자님의 프로필 이미지
밑바닥개발자

작성한 질문수

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

5. 수의 합

비슷한 while 문 코드 질문입니다!

작성

·

157

0

안녕하세요! 강의 잘 듣고 있습니다! 5. 수의 합 문제에서 설명만듣고 제 나름대로 소스코드를 구현했는데, 제 소스코드로 구현하면 예시 입력 케이스 2,4,5번에 대해 원래 정답에서 -1만큼 한 결과값이 나오게 되네요... 하단의 코드에서 어떤 문제 때문에 발생하는 건지 문의드려도 될까요!? 답변주시면 감사하겠습니다 :)

n, m = map(int, input().split())
a = list(map(int, input().split()))
lt, rt = 0, 1
tot = a[0]
cnt = 0
while rt < n:
    if tot < m:
        tot += a[rt]
        rt += 1
    else:
        if tot == m:
            cnt += 1
        tot -= a[lt]
        lt += 1
print(cnt)

답변 1

1

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

안녕하세요^^

아래와 같이 하면 나오네요.

n, m = map(int, input().split())
a = list(map(int, input().split()))
lt, rt = 0, 1
tot = a[0]
cnt = 0
while rt < n:
    if tot < m:
        tot += a[rt]
        rt += 1
    else:
        tot -= a[lt]
        lt += 1
    if tot == m:
            cnt += 1    
print(cnt)

답변 감사합니다! 마지막 if 문을 바깥에다가 지정해야 되군요..!

밑바닥개발자님의 프로필 이미지
밑바닥개발자

작성한 질문수

질문하기