슬라이딩 윈도우는 어떠한 배열에서 고정된 크기의 범위를 탐색할 때 유용
아래와 같은 배열이 있을 때 k = 3 크기의 슬라이딩 윈도우를 사용해 최대값을 구하려고 한다.
중복된 값이 나오는 점을 이용하여 윈도위의 합을 계산해 보면,
temp = [1, 3, 2, 6, -1, 4]
N = len(temp)
K = 3
total = sum(temp[:K])
max_total = sum_temp
for i in range(K, N):
total -= temp[i-K]
total += temp[i]
max_temp = max(max_total, total)
total
에 0 ~ 2번 인덱스의 값을 저장 → 1+3+2
K
번째인 3
번째 인덱스부터 탐색 진행i-K
인 temp[0]
값을 빼주기! → total - 1 = 3+2
temp[3]
더하기 → total + 6 = 3+2+6
햅쌀님 슬라이딩 윈도우가 C++에도 있을까요??