본문 바로가기
개발 노트/백준, 프로그래머스 풀이

백준 2559 수열 문제 개선답

by tokkiC 2022. 6. 14.

계산방법을 구간합으로 바꾸니 연산이 줄어 시간내에 해결 가능하였다

max 를 사용해서 비교 갱신하여 ret 의 최대값을 구하였으므로, 최소값을 구하였고 여유값을 더 준점이 포인트다

#include <bits/stdc++.h>
using namespace std;

int a;
int n; 
int temp;
int psum[100004];	// 여유공간 4 
int ret = -10000004;  // max비교를 위한 최소값, 온도가 -100이고 10만번 더하니 -1000만이 최소값이다 여유를 위해 공간을 더 주자   

int main(){
	cin >> a >> n;
	for(int i=1; i<=a; i++){
		cin >> temp;
		psum[i]=psum[i-1]+temp;
	}
	for(int i=n; i<=a; i++)
		ret = max(ret, psum[i]-psum[i-n]);
		
	cout << ret << "\n";
	
	return 0;
}

댓글