https://www.acmicpc.net/problem/2156
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> arr;
vector<int> dp;
int main(void)
{
int i,k,t;
cin >> t;
arr.resize(t+1,0);
dp.resize((t/3)+2,0);
i = t;
while (t--)
cin >> arr[i-t-1];
dp[1] = arr[0];
for (i = 2, k = 2; k < dp.size(); i += 3, k++)
dp[k] = dp[k - 1] + max(arr[i - 1] + arr[i + 1], arr[i]);
cout << dp[k-1] << endl;
return 0;
}
으잌 줄바꿈이.. - 새벽하늘
html태그 거느라 실수입니다..
스킵하던가 하나먹고하나스킵하던가 두개먹고하나스킵하던가 이런식으로 구현해서 점프하는게 유동적이어야 하는데 이건 걍 3의배수로 끊어서 안댐
문제 재밋어 보인다 - 새벽하늘
이거 경우의 수가 하나 더 있음
이거 계단 오르기 문제네요
최대의 수를 받고 연속되잇는게 없으면 출력 있으면 2번째 큰수 검사후 출력 - 새벽하늘
ㅇㅁㅇ 저는 이럴꺼같은데 - 새벽하늘
지금 먹으려는 포도주가 n번째 포도주라고 할때 니 코드는 n번째를 안먹었을때하고 n-1번째를 안었을때 + n번째를 먹었을때의 최대 값을 가져오는데
n-2번째에 대해서도 검사 해야함
for문도 ㅁ머학생원생 말처럼 3의 배수도 끊네 dp
음.. 좀 더 생각해봐야겠네요 n-2번째에 대해서도 검사하는 방향으로하고 3의 배수도 수정할게요 감사감사
새벽시엘//되잇->돼있 (되어 = 돼임) [리듬 맞춤법 봇♬]