https://www.acmicpc.net/problem/2559
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
temps = list(map(int, input().split()))
partSum = sum(temps[:k])
result = [partSum]
for i in range(n-k): # n개의 수를 k씩 연속합을 구하면 나오는 갯수
result.append(result[i]-temps[i]+temps[i+k])
print(max(result))
- 합을 기록하는 리스트의 이전값(result[i]) 에서 제일 왼쪽 값 (temps[i])을 제외하고 그 다음값( temps[i+k]) 을 더하면 다음 누적합을 구할 수 있다.
- n-k는 n개의 수를 k개씩 연속합을 구하면 나오는 가짓수 이다.
'Algorithm > Problems' 카테고리의 다른 글
99클럽 코테 스터디 7일차 TIL + 스택 (0) | 2025.04.08 |
---|---|
99클럽 코테 스터디 6일차 TIL + DFS (0) | 2025.04.07 |
99클럽 코테 스터디 4일차 TIL + DFS (0) | 2025.04.03 |
99클럽 코테 스터디 3일차 TIL + 구현 (0) | 2025.04.02 |
99클럽 코테 스터디 2일차 TIL + DP (0) | 2025.04.01 |