purpose   5년 전

메모리 초과 문제에서 메모이제이션을 이용했는데 메모리 초과가 나옵니다. 재귀함수를 많이 호출해서 나오는 것 같은데 어떻게 고쳐야 할지 모르겠네요..

조언 부탁드립니다.

if(dp[a][b] > 0){ return dp[a][b]; }를 

if(a == 1 && b == 1){ return candy[1][1];의 위로 올리게 되면 런타임 에러가 나옵니다.

djm03178   5년 전

사탕의 개수가 0일 수 있기 때문에, dp[a][b]가 이미 결정이 됐는데도 인지하지 못하고 또 계산하려 할 수 있습니다. 또한 17번째 줄이나 19번째 줄이 실행되었는데도 21번째 줄에 걸리지 않고 24번째 줄이 또 실행될 수 있습니다. 그래서 음수 인덱스로 나아갈 수 있습니다.

purpose   5년 전

아!!  명쾌한 답변 감사합니다 ^^

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