티스토리 뷰

Algorithm/BOJ

백준 2559번 C++

poopooreum 2023. 8. 8. 20:46
반응형
백준 2559번 수열

https://www.acmicpc.net/problem/2559

2559번: 수열

첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기

www.acmicpc.net


정답 코드

#include<iostream>
using namespace std;
int arr[100001];
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n, k;
	cin >> n >> k;
	for (int x = 0; x < n; x++) {
		cin >> arr[x];
	}
	int sum = 0, max = -987654321;
	for (int x = 0; x < n; x++) {
		if (x < k)
			sum += arr[x];
		else
			sum = sum - arr[x - k] + arr[x];
		if (x >= k-1) {
			if (max < sum)
				max = sum;
		}
	}
	cout << max;
}

문제 풀이

n개만큼 입력을 받은 후 n개의 반복문을 돌립니다.
이때 x가 k보다 작을 때는 우선 sum변수에 다 더해주고 k보다 크거나 같을 시에는 sum값과 max값을 비교해서 최댓값을 구해줍니다. 그리고 sum값의 맨 첫 번째로 더한 값은 빼주고 현재값을 더해주면서 수열의 길이를 k로 맞추면서 이동하고 비교해줍니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 2563번 C++  (0) 2023.08.09
백준 2562번 C++  (0) 2023.08.09
백준 2558번 C++  (0) 2023.08.08
백준 2557번 C++  (0) 2023.08.08
백준 2525번 C++  (0) 2023.08.08
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함