재귀로 풀고싶었으나 안되었다.
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>

using namespace std;

typedef long long ll;
ll tb1[100001];
ll che1[100001];
ll n;
ll maxnum = -1;

int main(void)
{
    int t;
    cin >> t;
    while(t--){
        memset(che1,-1,sizeof(che1));
        memset(tb1,0,sizeof(tb1));
        maxnum = -1;
        cin >> n;
        for(int i=0;i<n;++i){
            cin >> tb1[i];
        }
        che1[0] = tb1[0];
        maxnum = tb1[0];
        for(int i=1;i<n;++i){
            che1[i] = max(tb1[i],che1[i-1]+tb1[i]);
            maxnum = max(maxnum,che1[i]);
        }
        cout << maxnum << endl;
    }
    return 0;
}


'알고리즘' 카테고리의 다른 글

[DP] 백준 4811 알약  (0) 2018.04.29
[DP] 백준 11048 이동하기  (0) 2018.04.29
[DP] 백준 1495 기타리스트  (0) 2018.04.29
[DP] 백준 2240 자두나무  (0) 2018.04.29
[DP] 백준 2302 극장 좌석  (0) 2018.04.29

+ Recent posts