#include <stdio.h>
#include <vector>
using namespace std;
//int num[1000000];
//int main(){
// //freopen("input.txt", "rt", stdin);
// int n, k, i, max=-2147000000, sum=0;
// scanf("%d %d", &n, &k);
// for(i=0; i<n; i++){
// scanf("%d", &num[i]);
// }
// for(i=0; i<n-1; i++){
// sum = num[i]+num[i+k-1];
// if(sum>max) max=sum;
// }
// printf("%d", max);
//
//
// return 0;
//}
//->채점 받으면 오답출력됨
int main(){
//freopen("input.txt", "rt", stdin);
int n, k, i, max=-2147000000, sum=0;
scanf("%d %d", &n, &k);
vector<int> num(n);
for(i=0; i<n; i++){
scanf("%d", &num[i]);
}
for(i=0; i<k; i++){
sum+=num[i];
}
max=sum;
for(i=k; i<n; i++){
sum = sum + (num[i]-num[i-k]);
if(sum>max) max=sum;
}
printf("%d", max);
return 0;
}
int num[1000001] 전역변수로 정적 배열로 선언했으나,
-> 동적 배열 이용하기 vector<int> num(n);
이중 for 문 사용 X
-> sum = sum(이전 인덱스 결과 값) + num[i](범위에 해당하는 부분) - num[i-k](범위에 해당하지 않는 부분)
(예시)
k=2
for(i=k; i<n; i++)
3 | -2 | -4 | -9 | |
sum | 3 | 1 | i=2 1(sum) + -4(num[i]) - 3(num[i-k) = -6 |
i=3 -6(sum) + -9 - (-2) = -13 |
'스터디 > 알고리즘' 카테고리의 다른 글
[알고리즘][C++] 석차 구하기 (0) | 2022.07.20 |
---|---|
[알고리즘][C++] Jolly Jumpers (0) | 2022.07.19 |
[알고리즘][C++] 카드게임 (0) | 2022.07.18 |
[알고리즘][C++] 가장 많이 사용된 자릿수 (0) | 2022.07.12 |
[알고리즘][C++] 숫자의 총 개수 구하기 (제한시간 O) (0) | 2022.07.11 |