#include <iostream>
#include <algorithm>
using namespace std;
int N;
int DP[10001];
int arr[10001] = { 0, };
int main() {
cin >> N;
for (int i = 1; i <= N; i++)
cin >> arr[i];
DP[1] = arr[1];
DP[2] = arr[1] + arr[2];
for (int i = 3; i <= N; ++i) {
DP[i] = max(DP[i - 1], max(DP[i - 3] + arr[i - 1] + arr[i], DP[i - 2] + arr[i]));
}
cout << max(DP[N - 1], DP[N]);
return 0;
}
포도주 시식문제
#include <iostream>
using namespace std;
int N;
int DP[301];
int arr[301] = { 0, };
int main() {
cin >> N;
for (int i = 1; i <= N; i++)
cin >> arr[i];
DP[1] = arr[1];
DP[2] = arr[1] + arr[2];
DP[3] = max(arr[1], arr[2]) + arr[3];
for (int i = 4; i <= N; i++)
DP[i] = max(DP[i - 2],DP[i - 3] + arr[i - 1]) + arr[i];
cout <<DP[N];
}
계단 오르기
점화식이 비슷한 두 문제를 같이 풀어봤다 . DP 문제는 왤케 감이 안오나 모르것다 ㅠ DP알려줄사람ㅜ
'백준' 카테고리의 다른 글
백준 10844 :쉬운 계단 수 (0) | 2022.02.15 |
---|---|
백준 11053 (2) | 2022.02.14 |
백준 1149 : RGB 거리 (2) | 2022.02.11 |
백준 11726 : 2xn타일링 (2) | 2022.02.10 |
백준 1922 : 네트워크 연결 (2) | 2022.02.09 |