개발/알고리즘
백준 2559번 수열 C++
daisy-day
2021. 1. 7. 22:47
문제
2559번: 수열
첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기
www.acmicpc.net
코드
#include<bits/stdc++.h>
using namespace std;
int n, k, num, first, last, temp, maxNum;
int arr[100001];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> k;
for (int i = 0; i < n; i++)
{
cin >> num;
arr[i] = num;
}
for (int i = 0; i < k; i++)
{
temp += arr[i];
maxNum = temp;
}
last = k;
int index = n - k;
while (index--)
{
int num = temp - arr[first] + arr[last];
if (maxNum < num)
maxNum = num;
temp = num;
first++;
last++;
}
cout << maxNum;
return 0;
}
걸린 시간
1시간
헤맨 부분
처음 temp값 구하는 for문에서 maxNum = temp 안해줌