반례)
3
1
2
3
답은 5가 나와야 하지만, 4를 출력합니다.
2579번 - 계단 오르기
저 같은 경우에
반례)
6
1 1 0 0 1 1
4가 나와 수정했었습니다.
ans[1][1] = arr[1]; // 초기값 셋팅( 첫계단일때는 경우의 수가 첫번째 일때밖에 존재하지 않는다 )
// 해당 계단을 안 밟았을 때
if(j == 0) ans[i][j] = Math.max( Math.max(ans[i-1][0], ans[i-1][1]), ans[i-1][2] );
// 해당 계단이 첫 번째 일때
//if(j == 1) ans[i][j] = ans[i-1][0] + arr[i] ;
if(j == 1) ans[i][j] = Math.max(ans[i-2][1], ans[i-2][2]) + arr[i] ;
// 해당 계단이 두 번째 일때
if(j == 2) ans[i][j] = ans[i-1][1] + arr[i] ;
댓글을 작성하려면 로그인해야 합니다.
josung50 6년 전
2차원 dp로 풀었습니다.
점화식으로는
DP[i][j] = MAX( DP[i][j-2] , S[j-1] + DP[i][j-3]) + S[j] 로 세웠구요!
제발 도와주세요.