pianissimo   5년 전

게시판에 있는 반례들은 다 해봤는데 아직까지는 못찾았습니다.
a배열은 계단의 값이고 result는 dp결과 배열입니다.
알고리즘은 result[n]은
result[n-3] + a[n-2] + a[n], result[n-4] + a[n-2] + a[n], result[n-3] + a[n-1] + a[n]
중 최대값으로 했습니다. 이전의이동경우가 (1,2), (2,2), (2,1)인 경우입니다.  
저 중 result[n-3]이 그 이전에 (2,1) 로 뛴 경우 그 다음은 (1,2)를 오를 수 없으므로 뒤의 두가지만 비교합니다.
예외케이스로 1~5까지의 result값은 그냥 구했습니다.
도움좀 부탁드립니다.

doju   5년 전

아래 예시에서 result[3]은 3점이며, 이는 1번 - 3번 계단을 밟아도 가능하고 2번 - 3번 계단을 밟아도 가능합니다. 답은 1번 - 3번 - 4번 - 6번 계단을 밟고 6점을 얻는 것인데 지금 코드에서는 이 방법을 고려하지 못합니다.

pianissimo   5년 전

감사드립니다.!!

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