반응형
https://www.acmicpc.net/problem/2559
2559번: 수열
첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기
www.acmicpc.net
- 문제
수열이 주어지면 K 길이의 합이 최대인 경우를 구하는 문제다.
- 해설
1 2 3 4 5 6 7 8 9라는 수열이 있으면
4 부터 8까지의 합은
8까지의 합 - 3까지의 합이 되므로
반복문을 총 길이 - K번 만큼 돌려서 최대값을 구하면 된다.
- 풀이
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, K, temp, maxNum = -99999999;
cin >> N >> K;
vector<int> v(N + 1);
v[0] = 0;
for (int i = 1; i <= N; i++)
{
cin >> temp;
v[i] = v[i - 1] + temp;
}
for (int i = 0; i + K <= N; i++)
{
if (v[i + K] - v[i] > maxNum)
{
maxNum = v[i + K] - v[i];
}
}
cout << maxNum;
return 0;
}
- 새롭게 알게 된 점
반응형
'Algorithm > Baekjoon BOJ' 카테고리의 다른 글
[백준][C++] 11660: 구간 합 구하기 5 (0) | 2022.11.12 |
---|---|
[백준][C++] 16139: 인간-컴퓨터 상호작용 (0) | 2022.11.11 |
[백준][C++] 11659: 구간 합 구하기 4 (0) | 2022.11.10 |
[백준][C++] 2580: 스도쿠 (2) | 2022.11.08 |
[백준][C++] 1912: 연속합 (0) | 2022.11.04 |