백준 12847 꿀 아르바이트
12847번 꿀 아르바이트 문제는 누적합 문제입니다.
모든 경우에 대해서 처음부터 합을 구하는 것이 아니라 이전에 구해놓은 합으로 부터 값을 찾아가는 방식입니다.
제가 예전에 만들어놓은 그림입니다. Sliding window 방식으로 문제를 해결할 수 있습니다.
전체 코드는 다음과 같습니다.
n, m = map(int, input().split())
salary = list(int(x) for x in input().split())
sum = 0
for i in range(m):
sum += salary[i]
start = 0
end = m
max_sum = sum
while end < n:
sum = sum + salary[end] - salary[start]
max_sum = max(max_sum, sum)
start += 1
end += 1
print(max_sum)