반응형
문제
풀이
점화식을 이용하여 문제를 해결합니다.
소스 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <iostream>
#include <algorithm>
using namespace std;
int arr[100000];
int dp[100000][2];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
dp[0][0] = arr[0];
dp[0][1] = arr[0];
int ans = arr[0];
// 점화식
for (int i = 1; i < n; i++)
{
dp[i][0] = max(arr[i], arr[i] + dp[i - 1][0]);
dp[i][1] = max(dp[i - 1][0], dp[i - 1][1] + arr[i]);
ans = max(ans, max(dp[i][0], dp[i][1]));
}
cout << ans;
return 0;
}
|
cs |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 1987] 알파벳 C++ (0) | 2021.10.08 |
---|---|
[백준 14719] 빗물 C++ (0) | 2021.10.07 |
[백준 2660] 회장뽑기 C++ (0) | 2021.10.05 |
[백준 5582] 공통 부분 문자열 C++ (0) | 2021.10.03 |
[백준 13023] ABCDE C++ (0) | 2021.10.02 |