본문 바로가기
개발/Algorithm

[백준/2559번/실버 3] 수열 - 누적합 스킬

by 킴과다페인(chae eun kim) 2023. 8. 4.

항상 [누적합]구할 때 시간초과 없애기 위해 → 초기화된 배열에 append함. 이전까지의 합을 이용해서 현재의 합을 구하는 느낌!

import sys

input = sys.stdin.readline

n, k = map(int, input().split()) #n개 수 / k개의 연속된 수의 합

tem_list = list(map(int, input().split())) # 1 2 3 4 5 / 2개


#k개의 연속된 수의 합의 결과
result_list = []
result_list.append(sum(tem_list[:k])) # 첫 번째 연속 합으로 초기화

for i in range(n-k):
    # 이전 인덱스 부터 k개 합 - 이전 인덱스 값 + 현재 인덱스에서 k개 맨 끝 값
    tem_sum = result_list[i] - tem_list[i] + tem_list[i+k]
    result_list.append(tem_sum)

print(max(result_list))