https://www.acmicpc.net/problem/1912
1912번: 연속합
첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.
www.acmicpc.net
![](https://blog.kakaocdn.net/dn/d1OPEa/btqCLNCOZLr/kX5aPO1QhZlbfOtySQypE0/img.png)
💡 내 코드(C++)
/*[1912] 연속합*/
/*https://www.acmicpc.net/problem/1912 */
#include <iostream>
#include <algorithm>
using namespace std;
int main(void)
{
int n, max;
int arr[100001], dp[100001];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
dp[0] = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > dp[i - 1] + arr[i])
dp[i] = arr[i];
else
dp[i] = dp[i - 1] + arr[i];
}
max = dp[0];
for (int i = 0; i < n; i++) {
if (dp[i] > max)
max = dp[i];
}
cout << max << endl;
}
반응형
'Baekjoon > DP' 카테고리의 다른 글
[2163] 초콜릿 자르기 (0) | 2019.09.15 |
---|---|
[2133] 타일 채우기 (0) | 2019.09.15 |
[1904] 01타일 (0) | 2019.09.15 |
[1699] 제곱수의 합 (0) | 2019.09.15 |
[1463] 1로 만들기 (0) | 2019.07.23 |