https://www.acmicpc.net/problem/2003
n, m = map(int, input().split())
num = list(map(int, input().split()))
start = 0
end = 1
cnt = 0
while end <= n and start <= end:
if end >= m+1:
end == m+1
temp = num[start: end]
total = sum(temp)
if total == m:
cnt += 1
end += 1
elif total < m:
end += 1
elif total > m:
start += 1
print(cnt)
부분합이 작다면 end값을 1을 더해 구간을 늘립니다.
반대로 부분합이 크다면 start 값에 1을 더해 구간을 줄입니다.
부분합과 원하는 값이 같다면 cnt에 1을 더해주고 end 값에 1을 더해줍니다.