본문 바로가기

알고리즘/파이썬 알고리즘 인터뷰

슬라이딩 윈도우

슬라이딩 윈도우(sliding window)란 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘을 말한다.

 

슬라이딩 윈도우는 투 포인터와 함께 알고리즘 풀이에 매우 유용하게 사용된다.

투 포인터와 비슷하지만 이와 구분하기 위해 일반적으로 고정 사이즈 윈도우를 사용하는 경우를 슬라이딩 윈도우로 따로 구분하기도 한다. 또한 주로 정렬된 배열을 대상으로 하는 투 포인터와 달리 슬라이딩 윈도우는 정렬 여부에 관계없이 활용된다는 차이가 있다.

 

슬라이딩 윈도우에서 윈도우 사이즈는 고정이며, 좌 또는 우 한쪽 방향으로만 이동한다.

 

이름 정렬 여부 윈도우 사이즈 이동
투 포인터 대부분 O 가변 좌우 포인터 양방향
슬라이딩 윈도우 X 고정 좌 또는 우 단방향

 

때로는 투 포인터와 슬라이딩 윈도우가 서로 혼용되어 풀이하는 경우가 있지만, 둘 사이를 명확하게 구분하는 게 큰 의미는 없기 때문에 특별히 문제는 없다.