shin0343   6년 전

굳이 2차원 배열이 없어도 풀 수 있다고 생각하여 

 "n번째 -> n-2번째" 과 "n번째 ->n-1번째-> n-3번째" 비교를 통해서 마지막 계단부터 시작지점으로 DP로 계산하는 방법을 사용했습니다.

오답이 뜨는 이유가 뭘까요?? 혹여 테스트케이스라도 있다면 알고싶습니다.. 


소중한 시간 내어 읽어주셔서 감사합니다.

djm03178   6년 전

26번째 줄도 있으면 안 될 거고, 그걸 지워도 예제 입력부터 잘못 나옵니다. 65가 나오네요.

shin0343   6년 전

글을 작성할때 결과를 착각하고 전에 사용한 코드를 올렸네요..

아래 코드로는 여러 테스트케이스들이 다 통과되는데 어떻게 개선해야할지를 잘 모르겠습니다

shin0343   6년 전

해결했습니다. 감사합니다~

djm03178   6년 전

가능하면 제출한 코드 그대로를 주세요. 12, 51, 52, 65번째 줄들은 지우셨겠죠?

그리고 getPoint 함수는 모든 분기에서 리턴을 해야 됩니다. 15나 19번째 줄에서 리턴한다고 해서 재귀호출 스택이 모두 그 값을 리턴해 준다는 보장은 없습니다. 미정의 동작입니다. VS에서는 되는 것 같지만 채점 환경에서는 어떻게 될지 모릅니다. 29, 38, 44번째 줄에서도 모두 return을 해야 합니다.

이 모두를 고치면, 다음과 같은 반례가 있습니다.

5

3

3

2

1

1

이 경우 3, 3, 1, 1을 선택하여 총 8점을 얻을 수 있지만, 이 코드는 6을 출력합니다.

djm03178   6년 전

해결하셨다니 다행이네요.

shin0343   6년 전

네 조언해주셔서 감사합니다. 

코드의 문제점을 찾는데 정신이 팔렸는지 테스트용으로 작성한 코드까지 제출했었네요..


반복문으로 새로 짜서 해결했습니다. 재귀로는 다시 작성해볼 예정인데, 반례는 소중히 사용하겠습니다!


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