슬라이딩 윈도우와 투포인터 알고리즘 (+백준 1806 부분합, 백준 15961 회전초밥)
알고리즘/유형·2025. 6. 25.
슬라이딩 윈도우슬라이딩 윈도우 알고리즘은 배열이나 리스트와 같은 자료구조에서 고정된 크기의 연속된 부분의 합이나 최대값 등을 효율적으로 계산하는데 사용되는 알고리즘이다. 아래 리스트에서 연속되는 5칸 합의 최대값을 구하려면, 모든 경우의 수를 구하여 합을 계산하고, 최대값만을 저장하면 된다. 그러나 리스트의 길이가 매우 길어진다면 시간복잡도 측면에서 문제가 생길 수 있다.이를 최적화 하기 위한 방법으로 슬라이딩 윈도우를 사용할 수 있는데, 슬라이딩 윈도우를 통해 최적화 하는 방법은 다음과 같다.첫 번째로, 5칸의 합을 구한다. 이때의 값은 5 + 3 + 2 + 5 + 7 로 22가 된다. 그리고 반복문을 통해 다음 칸으로 넘어간다.다음 칸에서는, 앞에서 구한 값에서 이전 값인 5를 빼주고, 새로운 값인 ..