[210528][백준/BOJ] 1912번 연속합
문제
입출력
풀이
그전까지 더해온 값+자신을 더한 값과 자신의 값을 비교해서 최대값을 구하는 방식으로 문제를 풀었다.
점화식은 다음과 같다.
d[i] = max(d[i-1]+A[i], A[i]);
코드
#include <bits/stdc++.h>
using namespace std;
int d[100002];
int A[100002];
int dp(int n)
{
d[1] = A[1];
int res = d[1];
for (int i = 2; i <= n; ++i)
{
d[i] = max(d[i - 1] + A[i], A[i]);
res = max(d[i], res);
}
return res;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> A[i];
cout << dp(n);
}
Author And Source
이 문제에 관하여([210528][백준/BOJ] 1912번 연속합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kwkim95/210528백준BOJ-1912번-연속합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)