슬라이딩 윈도우 알고리즘

hyocho·2022년 11월 12일
0

코딩테스트

목록 보기
42/45
post-thumbnail

고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘. 배열이나 리스트의 요소의 일정 범위의 값을 비교할때 사용하면 매우 유용.

어떤 배열에서 특정 길이만큼의 최대 합을 구할 때에는 for문으로 구할 수도 있겠지만 자료의 크기가 커지면 비효율적인 문제가 생긴다.

알고리즘은 투 포인터와 비슷하다. 차이점이 있다면, 합을 구할 부분집합의 개수가 정해져 있다는 것인데, 이런 의미에서 투 포인터보다는 이해와 구현이 더 간단하다.

선택한 부분집합의 가장 앞의 값을 빼고, 다음 값을 더하는 식으로 자연스럽게 창문을 한 칸씩 밀어 낼 수 있다. 따라서 시간복잡도는 O(n)이 된다.

profile
기록하는 습관을 기르고 있습니다.

0개의 댓글