슬라이딩 윈도우 2

투포인터(Two Pointer)

투 포인터정렬된 배열이나 리스트에서 두 개의 포인터(인덱스)를 이용해 효율적으로 문제를 해결하는 알고리즘 기법💡 기본 아이디어두 개의 포인터두 개의 인덱스(p1, p2)를 사용해 배열의 요소들을 동시에 탐색한다정렬 활용배열이 오름차순(또는 내림차순)으로 정렬되어 있기 때문에,두 포인터가 가리키는 값을 비교하여어느 쪽 포인터를 이동시킬지 결정할 수 있다ℹ️  예시두 정렬된 배열에서 공통 요소 찾기 1. 초기화:배열 A, 배열 B가 있다고 가정포인터 p1은 A의 시작(인덱스 0)에서, p2는 B의 시작(인덱스 0)에서 시작2. 동작 과정:A[p1] == B[p2]두 배열 모두 해당 요소를 포함하므로 공통 요소로 기록두 포인터 모드 한 칸씩 이동A[p1] A[p1]이 더 작으므로 A에서 다음 값과 비교하기 ..

알고리즘/개념 2025.03.30

슬라이딩 윈도우(Sliding Window)

슬라이딩 윈도우(Sliding Window)알고리즘 문제를 풀다 보면, 배열이나 문자열과 같이 연속된 구간에 대한 처리가 필요할 때가 있을텐데,이때 슬라이딩 윈도우 기법을 사용하면 도움이 된다.1. 슬라이딩 윈도우란?슬라이딩 윈도우 기법은 두 개의 포인터(또는 인덱스)를 사용하여배열이나 문자열의 특정 구간(윈도우)를 유지하면서 문제를 해결하는 방법이다.이 기법은 주로 다음과 같은 상황에서 유용하게 사용된다.연속된 구간의 합 구하기특정 조건을 만족하는 최대 또는 최소 길이 구하기중복이 없는 가장 긴 구간 찾기 등2. 기본 아이디어슬라이딩 윈도우는 아래의 단계를 반복하면서 문제를 해결한다.윈도우 정의시작 인덱스(left)와 끝 인덱스(right)를 두어 구간을 정의한다.윈도우 확장right 포인터를 이동시키..

알고리즘/개념 2025.03.26