반응형
연속 배열 최대 값은 간단하게 DP로 해결 가능
만약 길이를 찾는 거면 투포인터..
그리고 전부 음수일 수 있으니 maxa는 arr[0]으로 초기화
#include<iostream>
#include <string.h>
#include<string>
#include<queue>
#include <vector>
#include<map>
using namespace std;
int arr[100000];
int D[100000];
int main(int argc, char** argv)
{
int test_case;
int T;
cin >> T;
for (test_case = 1; test_case <= T; ++test_case)
{
int N;
cin >> N;
memset(arr, 0, sizeof(arr));
memset(D, 0, sizeof(D));
for (int i = 0; i < N; i++)
{
cin >> arr[i];
}
D[0] = arr[0];
int maxa = 0;
for (int i = 1; i < N; i++)
{
D[i] = max(0, D[i - 1]) + arr[i];
if (maxa < D[i])
{
maxa = D[i];
}
}
cout << "#" << test_case << " " << maxa << endl;
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
반응형
'Algorithm' 카테고리의 다른 글
백준 3425번 고스택 (0) | 2020.09.01 |
---|---|
백준 16920번 확장 게임 (0) | 2020.08.31 |
백준 11780번 플로이드 2 (0) | 2020.08.30 |
백준 15992번 1, 2, 3 더하기 7 (0) | 2020.08.29 |
백준 10422번 괄호 (0) | 2020.08.17 |