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

less than 1 minute read

문제는 다음과 같다.

오늘은 백준1912번 연속합 문제를 풀어보도록 하자. 방식은 간단하다. for문을 돌리면서 값을 누적해가는데 만일 현재 값이 양수이고 다음 값과 현재 값을 더한게 양수이면 다음 값에 현재 값을 누적해가는 방식이다. 또한 ans보다 더한 값이 크다면? ans를 갱신시켜주는 방향으로 가면 된다.

                                     [코드]
#include <iostream>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int ans, n;
	int dp[100001];
	cin >> n;
	for (int i = 1; i <= n; i++)cin >> dp[i];
	ans = dp[1];
	for (int i = 1; i < n; i++) {
		if (dp[i] > 0 && dp[i] + dp[i + 1] > 0)dp[i + 1] += dp[i];
		if (ans < dp[i + 1])ans = dp[i + 1];
	}
	cout << ans;
}