- 문제
- 풀이
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n = 0, k = 0, temp = 0;
int result = -100000;
int psum[100001] = { 0 };
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
cin >> temp;
psum[i] = psum[i - 1] + temp;
}
for (int i = k; i <= n; i++)
{
result = max(result, psum[i] - psum[i - k]);
}
cout << result;
return 0;
}
- 메모
지난 문제에 이어서 구간합을 사용해서 풀이한 문제이다.
이때 기존에 저장된 result값과 현재 구해진 구간합의 값을 비교해 더 큰 값이 result에 할당되도록 max 함수를 사용했다.
'코딩테스트 > 문제풀이' 카테고리의 다른 글
[백준/18258번/C++] 큐 2 (0) | 2024.08.26 |
---|---|
[백준/19532번/C++] 수학은 비대면강의입니다 (0) | 2024.08.25 |
[백준/11659번/C++] 구간 합 구하기 4 (0) | 2024.08.23 |
[백준/14425번/C++] 문자열 집합 (0) | 2024.08.22 |
[백준/10815번/C++] 숫자 카드 (0) | 2024.08.21 |