https://chosh95.tistory.com/371
https://yabmoons.tistory.com/477
- 0번째 인덱스를 선택하면 마지막 -1까지 진행한다.
- 0번째를 선택 안하면 마지막까지 진행해도 된다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> money) {
int answer = 0;
vector<int>dp(money.size(), 0);
vector<int>dp2(money.size(), 0);
dp[0] = money[0];
dp[1] = money[0];
dp2[0] = 0;
dp2[1] = money[1];
for(int i = 2; i < dp.size() - 1; i++)
{
dp[i] = max(dp[i - 1] , dp[i - 2] + money[i]);
}
for(int i = 2; i < dp2.size(); i++)
{
dp2[i] = max(dp2[i - 1] , dp2[i - 2] + money[i]);
}
int max1 = *max_element(dp.begin(), dp.end());
int max2 = *max_element(dp2.begin(), dp2.end());
if(max1 < max2)
{
answer = max2;
}
else
answer = max1;
return answer;
}