작성
·
36
0
http://boj.kr/d480df7fada948b4a9ace782c2532e66
선생님과 비슷한 코드를 작성한거 같은데 답이 안 나오는 이유를 잘모르겠습니다...
그리고 이 문제의 경우 최솟값을 찾는 경우이므로 dp배열을 답이 될 수 없는 가장 큰 수로 초기화를 하지 않는 이유가 궁금합니다!
답변 2
0
안녕하세요 윤교님 ㅎㅎ
int &ret = dp[idx][left][right];
if(ret!=-1) return ret;
ret = 987654321;
제 코드에서 -> 큰수로 초기화는 진행합니다.
int go(int depth, int left, int right) {
if (depth == v.size()) return 0;
int& ret = dp[depth][left][right];
처음에 -1을 매개변수로 넣게 되면 배열 인덱스에 -1이 들어가게 됩니다. 이부분 때문에 틀린 것 같습니다.
dp문제를 탑다운(재귀) 방식으로 풀이 할 때 디버깅 코드
>> 함수 호출부분에서 매개변수 출력, 그리고 메모이제이션이 잘됬나 배열의 요소를 확인하면 됩니다.
감사합니다.
0