Two Pointer(투 포인터)

김재령·2025년 3월 15일
0

알고리즘

목록 보기
6/10

🎯 투 포인터 개념 한 줄 정리

  • 정렬된 배열이나 리스트에서 두 개의 포인터를 조작하여 원하는 값을 빠르게 찾는 기법
  • 왼쪽 포인터(L), 오른쪽 포인터(R) 두 개를 사용해서 특정 조건을 만족하는 구간을 탐색함

1️⃣ 서로 다른 방향에서 좁혀오는 방식 (Two Pointers - Opposite Ends)

배열 양쪽 끝에서 시작 → 서로 좁혀오면서 조건을 만족하는 값을 찾는 방식
예제: 정렬된 배열에서 두 수의 합이 특정 값이 되는 경우 찾기
✅ 예제 문제: 두 수의 합 찾기
https://www.codetree.ai/ko/trails/complete/curated-cards/challenge-sum-of-two-integers-2/description


2️⃣ 같은 방향으로 이동하는 방식 (Two Pointers - Sliding Window)

왼쪽과 오른쪽 포인터를 같은 방향으로 움직이며 특정 범위를 조정하는 방식

	int start = 0;
    
	for(int end=0; end < n; end++){
    	// 구간을 계속해서 증가시키는 값 
    	while(구간 조정 조건){
        	// 조건에 맞는 구간을 축소
            start --;
        
        }
    }

예제 : 연속된 부분 배열에서 최대 합 구하기
✅ 예제 문제: 연속된 K일 동안 최대 수익 구하기

profile
with me

0개의 댓글

Powered by GraphCDN, the GraphQL CDN