리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘
Two Pointers
알고리즘의 시간복잡도는 O(n)
start, end라는 두 개의 포인터를 사용합니다.
start는 부분배열의 앞 쪽을 가르키는 인덱스, end는 부분배열의 뒤 쪽을 가르키는 인덱스입니다.
맨 처음에 두 포인터는 0에서 시작하며 항상 start<=end를 만족해야합니다.
그리고 매 순간마다 부분합 배열의 합과 구해야하는 값을 비교하여 포인터를 이동하게 됩니다.
- 부분합 배열의 합 < 구해야하는 값end를 오른쪽으로 한 칸 이동하여 부분합 배열의 크기를 증가시킵니다.
- 부분합 배열의 합 >= 구해야하는 값start를 오른쪽으로 한 칸 이동하여 부분합 배열의 크기를 감소시킵니다.