1차원 배열에서 연속된 배열이나 특정 값을 구하는 문제에서는 투포인터를 사용해서 시간복잡도를 줄일 수 있다.
import sys
input = sys.stdin.readline
n, s = map(int, input().split())
A = list(map(int, input().split()))
def two_sum(nums, target):
s,e,count = 0,0,0
sum = nums[0]
while e < n:
if sum == target:
count+=1
sum -= A[s]
s +=1
elif sum < target:
e += 1
if e >= n:
break
sum += A[e]
elif sum > target:
sum -= A[s]
s +=1
return count
print(two_sum(A, s))