https://www.acmicpc.net/problem/2559
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
/******** 전역변수 ********/
/******** 함 수 ********/
int main(void) {
/******** C++ INIT ********/
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
/******** 지역변수 ********/
int input1, input2;
int num;
int sum = 0;
int left, right;
vector<int> v;
vector<int> v2;
/******** 구 현 ********/
cin >> input1 >> input2;
// 벡터에 수열 삽입
for (int i = 0; i < input1; i++) {
cin >> num;
v.push_back(num);
}
// 수열의 첫번째 합을 구하고 벡터에 삽입
for (int i = 0; i < input2; i++) {
sum += v[i];
}
v2.push_back(sum);
// 다음 합을 구하기 위해 좌/우측 변수 지정 (투포인터?)
left = 0;
right = input2 - 1;
// 합을 구해 벡터에 삽입
for (int i = 0; i < v.size() - input2 + 1; i++) {
// 첫번째 합에 left 값을 뺀 후,
sum = v2[i] - v[left];
// 각 투포인터에 인덱스 +1
left++;
right++;
// 우측 포인터가 size를 넘어가면 반복 멈춤
if (right >= v.size()) break;
// +1 된 right값을 더한다
sum += v[right];
v2.push_back(sum);
}
// 가장 최대 값 출력
cout << *max_element(v2.begin(), v2.end());
}
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 13305 주유소 (1) | 2025.02.10 |
---|---|
C++ 알고리즘 - 17478 재귀함수가 뭔가요? (1) | 2025.02.10 |
C++ 알고리즘 - 2156 포도주 시식 (0) | 2025.01.24 |
C++ 알고리즘 - 1932 정수 삼각형 (0) | 2025.01.24 |
C++ 알고리즘 - 1149 RGB 거리 (0) | 2025.01.24 |