
먼저 k만큼 수를 더하고, 답을 저장하는 변수인 ans에 수의 합을 저장한다.
그리고 그 다음 end를 1 증가시킨 후 앞쪽 숫자 하나를 빼고, 뒷쪽 숫자를 더하면서 k개수만큼 한 덩어리로 한칸씩 이동하면서 가장 큰 수를 찾도록 코딩했다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
int n, k;
cin >> n >> k;
vector<int> v(n);
for (int i = 0; i < n; i++)
cin >> v[i];
int start = 0, end = k - 1;
int sum = 0;
for (int i = 0; i <= end; i++)
sum += v[i];
int ans = sum;
while (++end < n)
{
sum -= v[start++];
sum += v[end];
ans = max(ans, sum);
}
cout << ans;
return 0;
}