choah76   1년 전

시간초과가 나던 코드에 어떤 분이 알고리즘은 비슷한데 cache배열을 추가한 코드가 있길래 적용해보았습니다.

9줄에 cache배열을 선언하고 17, 18, 41줄을 추가했습니다.

그랬더니 시간초과가 나지 않더군요

그런데 cache배열은 memset으로 -1값을 넣는것 말고는 어떤 곳에서도 cache배열값을 건드리는 부분이 없는데 왜 17, 18번째 줄이 동작하여 시간이

감소되는지가 궁금합니다

adung7   1년 전

17번째줄에서 &(레퍼런스)는 내부 동작이 포인터와 동일합니다.

따라서 ret의 값을 바꾸는 행위는 ret이 가리키고 있는 곳의 값을 바꾸는 행위와 동일하게 되어

cache[l][r]의 값을 27번줄을 통해서 넣어주게 됩니다.

choah76   1년 전

아 그러면 cache배열이 메모이제이션을 담당하는 것이군요

감사합니다!!

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