1149번 - RGB거리
몇일간 붙잡고 있었던 문제인데 도무지 어디가 틀렸는지 모르겠습니다...
답변부탁드립니다. ㅠㅠ
y 가 testcase가 되는순간 board y x를 리턴하는것에 문제가있습니다.
이 코드는 오버플로우를 일으키게 됩니다.
해당값을 반환만 하는데 스택오퍼플로우가 왜 난다는거죠? 재귀를 잘못써서그런건가요?;;이해가 잘 안갑니다...
board는 최대 크기가 [0~999][0~2] 까지인 배열입니다.
y == testcase가 되는 경우, 입력에 따라 1000이 될 수 있고
따라서 board[1000][0~2]에 접근하게 되어 배열 오버플로우 입니다.
마찬가지로 ret = cache[y][x] 에서도 같은 일이 발생합니다.
하지만 가장 큰 원인은 y == 0일때 x를 직접 정해주는것입니다. 처음 선택도 dp 처럼 다 시도해봐야 합니다.
제가 수정을 통해 고친 코드를 첨부했으니 참고해보세요.
* c++11 문법이 들어있으니 제출할때 c++11이나 c++14를 선택해주세요.
오... 이렇게 친절하게 설명해주시다니 감사합니다!
아직 DP에 미숙해서 모르는게 많습니다.
정말 감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
alclstit 7년 전
몇일간 붙잡고 있었던 문제인데 도무지 어디가 틀렸는지 모르겠습니다...
답변부탁드립니다. ㅠㅠ