자기개발👨‍💻/코딩 알고리즘

[Python] 백준 2559 수열 - 투포인터 알고리즘

천숭이 2023. 10. 24. 00:38

문제 : https://www.acmicpc.net/problem/2559

 

예제입력 :

10 2
3 -2 -4 -9 0 3 7 13 8 -3

 

예제출력 :

21

import sys
input = sys.stdin.readline

N,K = map(int, input().split())

nums = list(map(int, input().split()))

each = 0
for i in range(K):
    each += nums[i]
maxv = each
for i in range(K, N):
    each += nums[i]
    each -= nums[i-K]
    maxv = max(each, maxv)

print(maxv)

3 -2 -4 -9 0 3 7 13 8 -3

초기 인덱스는 3 + (-2) = 1

 

이 상태에서 -4를 더해주고 3을 빼줌

빼줘야 하는 인덱스는 [i-k]

그리고 최댓값 갱신