백준 2208 보석 줍기

DARTZ·2022년 5월 19일
0

알고리즘

목록 보기
66/135
import sys
sys.stdin = open('input.txt', 'rt')
input = sys.stdin.readline


N, M = map(int, sys.stdin.readline().split())
arr = [0] * N
value = 0
prefix_sum = [0]
for i in range(N):
    arr[i] = int(input())
    value += arr[i]
    prefix_sum.append(value) # 구간 합을 더한다.

ans, tmp = 0, 0
for i in range(M - 1, N): # M - 1부터 시작해야지 M개 이상이 가능하다.
    tmp = min(tmp, prefix_sum[i - (M - 1)]) # 최소 구간 합을 더한다.
    ans = max(ans, prefix_sum[i + 1] - tmp) # 최대 구간합에서 최소 구간 합을 빼주면서 최대 구간 값을 구한다.

print(ans)
profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글