알고리즘/PS

[C++] 백준 1912 : 연속합

BigmacGood 2022. 4. 5. 22:43

https://www.acmicpc.net/problem/1912

 

1912번: 연속합

첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.

www.acmicpc.net

백준 1912번 연속합 문제를 풀어봤습니다.

 

아래는 전체 코드입니다.

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int n;
int sequence[100000];
int sum[100000];

void dp(int n) {
	sum[0] = sequence[0];

	int result = sum[0];
	for (int i = 1; i < n; i++) {
		sum[i] = max(sum[i - 1] + sequence[i], sequence[i]);
		result = max(sum[i], result);
	}
	cout << result;
}

int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> sequence[i];
	}

	dp(n);

	return 0;
}