• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

21.11.11 14:04 작성 조회수 123

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 문을 바깥에다가 지정해야 되군요..!