alclstit   7년 전

몇일간 붙잡고 있었던 문제인데 도무지 어디가 틀렸는지 모르겠습니다...

답변부탁드립니다. ㅠㅠ

yukariko   7년 전

y 가 testcase가 되는순간 board y x를 리턴하는것에 문제가있습니다.

이 코드는 오버플로우를 일으키게 됩니다.

alclstit   7년 전

해당값을 반환만 하는데 스택오퍼플로우가 왜 난다는거죠? 재귀를 잘못써서그런건가요?;;이해가 잘 안갑니다...

yukariko   7년 전

board는 최대 크기가 [0~999][0~2] 까지인 배열입니다.

y == testcase가 되는 경우, 입력에 따라 1000이 될 수 있고

따라서 board[1000][0~2]에 접근하게 되어 배열 오버플로우 입니다.

마찬가지로 ret = cache[y][x] 에서도 같은 일이 발생합니다.

하지만 가장 큰 원인은 y == 0일때 x를 직접 정해주는것입니다. 처음 선택도 dp 처럼 다 시도해봐야 합니다.

제가 수정을 통해 고친 코드를 첨부했으니 참고해보세요.

yukariko   7년 전

* c++11 문법이 들어있으니 제출할때 c++11이나 c++14를 선택해주세요.

alclstit   7년 전

오... 이렇게 친절하게 설명해주시다니 감사합니다!

아직 DP에 미숙해서 모르는게 많습니다.

정말 감사합니다!!

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