어떤 수열이 있을 때 연속된 구간의 최대합을 출력하려고 한다.
예를 들어
2 -6 4 5 -2 6 2 -1이라는 수열이 있다면
연속된 구간의 최대 부분합은 15이다. (4+5+ -2 + 6 + 2)
더보기
입력 예시
8
2 -6 4 5 -2 6 2 -1
출력 예시
15
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int N;
cin >> N;
int sum = 0;
int ret = -987654321;
int num;
for(int i = 0; i < N; i++){
cin >> num;
sum += num;
ret = max(ret, sum);
if(sum < 0) sum = 0;
}
cout << ret;
return 0;
}
'알고리즘' 카테고리의 다른 글
[백준] 14889 - 스타트와 링크 (0) | 2020.03.10 |
---|---|
[백준] 14888 - 연산자 끼워넣기 (0) | 2020.03.09 |
[코드업] 3735 - LIS (Small) (0) | 2020.03.07 |
[코드업] 3728 - 블럭 채우기 8 (0) | 2020.02.29 |
[코드업] 3721 - 블럭 채우기 7 (0) | 2020.02.29 |