답변 1
0
주석달았습니다. 참고 부탁드립니다.
#include <bits/stdc++.h>
using namespace std;
int N,K;
int a[100004];
int psum[100004];
int sum[100004];
int Max;
int main()
{
cin >> N >> K;
for (int i = 0; i < N; ++i) {
cin >> a[i];
}
psum[0] = a[0];
for (int i = 1; i < N; ++i) {
psum[i] = psum[i - 1] + a[i];
}
for (int i = K-1; i < N; ++i) {
//이렇게 하면 psum[-1]이 나오지 않을까요?
sum[i] = psum[i] - psum[i - K];
}
for (int i = 0; i < N; ++i) {
if (sum[i] > Max) {
Max = sum[i];
}
}
cout << Max;
}
음.. 저는 a[N]이 생기도록 만드는 것을 추천드리고 있습니다. 또한 0부터가 아닌 1부터 시작되게 하는 것을 추천드리고 있는데요. 강의 다시한번 확인 부탁드립니다.
psum공식에서 for문을 돌리실때
for(int i=1; i<=N; 으로 N을 포함하시던데,
그러면 a[N]이 생겨버리지 않나요??