moderatowi   3년 전

#include

#include

using namespace std;

int main() {

ios_base::sync_with_stdio(false);

int n;

int dp[10001] = { 0 };

cin >> n;

int* num = new int[n];

for (int i = 0; i < n; i++) {

cin >> num[i];

}

dp[0] = num[0];

dp[1] = num[0] + num[1];

for (int i = 2; i <n; i++) {

dp[i] = max(dp[i - 3] + num[i-1], dp[i - 2]) + num[i];

dp[i] = max(dp[i - 1], dp[i]);

}

cout << dp[n-1];

}

위에 이 코드는 시작이 0부터이고 아래 코드는 시작이 1부터인것 뿐인데 왜 아래코드만 정답인가요

sonjaewon   3년 전

위에 코드는 초기식이 잘못된것 같네요

moderatowi   3년 전

dp[2]=max(num[1]+num[2],num[0]+num[2]);

dp[2]=max(num[0]+num[1],dp[2]);

이걸 추가했어야 됐네 ㅋㅋ 시간 엄청 날렸다ㅜ

댓글을 작성하려면 로그인해야 합니다.