- 정렬된 배열이나 리스트에서 두 개의 포인터를 조작하여 원하는 값을 빠르게 찾는 기법
- 왼쪽 포인터(L), 오른쪽 포인터(R) 두 개를 사용해서 특정 조건을 만족하는 구간을 탐색함
배열 양쪽 끝에서 시작 → 서로 좁혀오면서 조건을 만족하는 값을 찾는 방식
예제: 정렬된 배열에서 두 수의 합이 특정 값이 되는 경우 찾기
✅ 예제 문제: 두 수의 합 찾기
https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-sum-of-two-integers-2/description
왼쪽과 오른쪽 포인터를 같은 방향으로 움직이며 특정 범위를 조정하는 방식
int start = 0;
for(int end=0; end < n; end++){
// 구간을 계속해서 증가시키는 값
while(구간 조정 조건){
// 조건에 맞는 구간을 축소
start --;
}
}
예제 : 연속된 부분 배열에서 최대 합 구하기
✅ 예제 문제: 연속된 K일 동안 최대 수익 구하기