출처 : www.acmicpc.net/problem/1912
고려사항
- 구간합 알고리즘을 이용하면 쉽게 구할 수 있음.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n, ans = 0;
cin>>n;
int num[n], s[n];
for(int i=0;i<n;++i){
cin>>num[i];
}
s[0] = num[0];
ans = s[0];
for(int i=1;i<n;++i){
s[i] = max(s[i-1]+num[i], num[i]);
ans = max(ans, s[i]);
}
cout<<ans;
return 0;
}
'BOJ 백준 > Dynamic Programming' 카테고리의 다른 글
| 백준 11053 - 가장 긴 증가하는 부분 수열 (0) | 2020.10.23 |
|---|---|
| 백준 09251 - LCS (0) | 2020.10.23 |
| 백준 02579 - 계단 오르기 (0) | 2020.10.23 |
| 백준 01932 - 정수 삼각형 (0) | 2020.10.23 |
| 백준 01149 - RGB거리 (0) | 2020.10.23 |
