문제 링크 : https://www.acmicpc.net/problem/2003
투 포인터 문제이다. start를 for문에 올려놓고, while 문으로 end의 범위를 조작하면 풀 수 있었다.
interval_sum이 M을 넘어버리는 순간이 있기 때문에, if interval_sum == M 조건을 걸어 answer를 구해줘야했다.
import sys
N, M = map(int, sys.stdin.readline().split())
A = list(map(int, sys.stdin.readline().split()))
end = 0
interval_sum = 0
answer = 0
for start in range(N):
while end < N and interval_sum < M:
interval_sum += A[end]
end += 1
if interval_sum == M:
answer += 1
interval_sum -= A[start]
print(answer)