

https://www.acmicpc.net/problem/2559
정수가 N개 주어지고개수 K가 주어졌을 때
어떠한 지점에서의 연속한 K개의 합이 가장 클때를 출력하는 문제
슬라이딩 윈도우 방식으로 풀었다.
배열에서 연속된 일정 범위(k개)의 값만을 이동하며 계산할 때 쓰는 기법
import sys
input = sys.stdin.readline
# n: 전체 날짜 수, k: 연속적인 날짜 수
n, k = map(int, input().split())
temps = list(map(int, input().split()))
# 초기 윈도우 합 계산 (0번 index부터 k개까지의 합)
window_sum = sum(temps[:k])
max_sum = window_sum
# 윈도우를 한 칸씩 이동하면서 합 갱신
for i in range(k, n):
# 왼쪽 값 제거하고, 오른쪽 새 값 추가
window_sum = window_sum - temps[i - k] + temps[i]
# 최대값 갱신
max_sum = max(max_sum, window_sum)
print(max_sum)