리스트에 순차적으로 접근해야 할 때 두개의 점의 위치를 기록하면서 처리하는 알고리즘
시작점과 끝점으로 접근할 데이터의 범위를 표현
투 포인터를 활용하여 다음과 같은 알고리즘으로 문제를 해결할 수 있다.
n = 5 #데이터 개수
m = 5 # 찾고자 하는 부분합
data = [1,2,3,2,5]
count = 0
interval_sum = 0
end = 0
for start in range(n):
while interval_sum < m and end < n:
interval_sum += data[end]
end+=1
if(interval_sum == m):
count+=1
interval_sum -= data[start]
print(count)