-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
코드 오류
21.01.12 18:01 작성 조회수 98
1
강의를 듣기전에 문제를 풀어볼 때 아래 코드처럼 이중for문으로 풀었습니다. 제대로된 값이 안나오는데 어느부분에서 오류가 있는지 모르겠습니다.
import sys
sys.stdin = open("input.txt", "rt")
N, M = map(int, input().split())
a = list(map(int, input().split()))
cnt = 0
for i in range(len(a)):
sum = a[i]
for j in range(i+1, len(a)):
if sum != M:
sum += a[j]
elif sum == M:
cnt += 1
break
print(cnt)
답변을 작성해보세요.
1
김태원
지식공유자2021.01.14
안녕하세요^^
sum+=a[j]을 하면 바로 sum==M인지 확인해야 하는데 이 코드는 한 박자 느리게 확인을 합니다.
문제의 있는 입력예시로 보자면 맨 마지막 3이 되는 경우인 1 2 의 경우를 카운팅하지 않습니다.
elif sum==M: 대신에 if sum==M: 으로 바꾸면 될겁니다.
답변 1