계단 오르기 문제 관련 질문드립니다. flyingwest 안녕하세요. 계단 오르기 문제를 풀었는데 최적해가 나오지 않아 질문드립니다. 일단 제 소스 다음과 같습니다. const int INF = 2140000000; int n; int a[305]; int dp[305][3]; int getdp(int now, int lastjump){ int first, second; if(now == 0 || dp[now][lastjump] != 0){ return dp[now][lastjump]; } if(lastjump == 1){ return dp[now][lastjump] = getdp(now-1,2) + a[now]; } first = getdp(now-2,1); second = getdp(now-2,2); if(first > second) { return dp[now][lastjump] =first + a[now]; } else { return dp[now][lastjump] = second + a[now]; } } int main() { int i; int firstResult, secondResult; int result; scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%d", &a[i]); } dp[1][1] = dp[1][2] = a[1]; firstResult = getdp(n,1); secondResult = getdp(n,2); if(firstResult > secondResult){ printf("result : %d\n", firstResult); } else { printf("result : %d\n", secondResult); } getche(); } 입력값은 6 10 20 15 25 10 20 출력은 75가 나와야 하는데 제 프로그램에서는 65가 나오네요 ㅠㅠ 어디서 잘못된걸까요? 고수님들 도와주세요 ㅠㅠ 9년 전
0개의 댓글이 있습니다. 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
flyingwest
안녕하세요. 계단 오르기 문제를 풀었는데
최적해가 나오지 않아 질문드립니다.
일단 제 소스 다음과 같습니다.
const int INF = 2140000000;
int n;
int a[305];
int dp[305][3];
int getdp(int now, int lastjump){
int first, second;
}
int main() {
int i;
int firstResult, secondResult;
int result;
}
입력값은
6
10
20
15
25
10
20
출력은 75가 나와야 하는데
제 프로그램에서는 65가 나오네요 ㅠㅠ
어디서 잘못된걸까요?
고수님들 도와주세요 ㅠㅠ
9년 전