#include<iostream>
#include<algorithm>
using namespace std;
int arr[100000];
int dp[100000];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
//dp는
dp[0] = arr[0]; //기본적으로 첫번째 인덱스는 같다, 먼저 초기화해주기
for (int i = 1; i < n; i++) {
dp[i] = max(dp[i - 1] + arr[i], arr[i]);
}
int Max = dp[0]; //입력조건을 보고 나올 수 없는 수 중에서 가장 작은수로 초기화하기 or 현재 dp배열에서 가장 작은수
for (int i = 0; i < n; i++)
if (Max < dp[i])
Max = dp[i];
cout << Max;
}
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[c++] 백준 1652 누울 자리를 찾아라 (0) | 2020.08.15 |
---|---|
[python] 백준 6603 로또 (0) | 2020.08.12 |
[c++] 백준 2669 직사각형 네개의 합집합의 면적 구하기 (0) | 2020.08.11 |
[C++] 백준 12919 A와 B 2 (0) | 2020.08.08 |
[python] 백준 1543 문서검색 (0) | 2020.07.22 |
[python] 백준 2193 이친수 (0) | 2020.07.22 |