🎃 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘.
이런 슬라이딩 윈도우와 함께 자주 언급되는 알고리즘으로 투 포인터 알고리즘이 있다.
투 포인터와 슬라이딩 윈도우 알고리즘은 선형 공간(1차원 배열(*리스트))을 2회 이상 반복적으로 탐색해야 할 경우 O(N^2) 이상 걸릴 시간 복잡도를 부분 배열을 활용하여 O(N)으로 줄일 수 있다는 공통점이 있다.
두 알고리즘의 차이점은??
쉽게 말해서, 투 포인터 알고리즘은 부분 배열의 길이가 가변적이지만, 슬라이딩 윈도우 알고리즘은 부분 배열의 길이가 고정적이다.
윈도우 내의 데이터에 대한 원하는 속성(합, 평균, 최대값)을 계산하고, 필요한 경우 이 정보를 갱신하면서 진행.
각 이동 시마다 전체 윈도우를 다시 계산하는 대신, 윈도우에서 제거되는 요소와 추가되는 요소만을 고려하여 계산을 최적화 할 수 있다.
백준 DNA 비밀번호, 회전 초밥(2531) 문제 풀어보기