https://github.com/o920/baekjoon/blob/master/1912.cpp
1. n입력받고 배열 입력받음
2. dp 배열에 dp 채움
3. dp 채우는 방법은 자기 직전 연속합최대와 자신의 합 vs 자신만 있을 때 중 큰 걸로 결정
#include <iostream>
#include <algorithm>
using namespace std;
int N[100000];
int dp[100000];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) cin >> N[i];
dp[0] = N[0];
int result = dp[0];
for (int i = 1; i < n; i++) {
dp[i] = max(dp[i - 1] + N[i], N[i]);
result = max(result, dp[i]);
}
cout << result << endl;
}
'코테' 카테고리의 다른 글
백준 11047 : 동전 0 c++ 정답 (0) | 2020.03.23 |
---|---|
백준 12865 : 평범한 배낭 c++ 정답 (배열 사용) (0) | 2020.03.23 |
백준 11054 : 가장 긴 바이토닉 부분 수열 C++ 정답&해설 (0) | 2020.03.17 |
백준 11650 좌표 정렬하기 c++ 정답 (pair 사용) (0) | 2020.03.12 |
백준 2231 : 분해합 C++ 정답 (0) | 2020.03.10 |