11066번 - 파일 합치기
시간초과가 나던 코드에 어떤 분이 알고리즘은 비슷한데 cache배열을 추가한 코드가 있길래 적용해보았습니다.
9줄에 cache배열을 선언하고 17, 18, 41줄을 추가했습니다.
그랬더니 시간초과가 나지 않더군요
그런데 cache배열은 memset으로 -1값을 넣는것 말고는 어떤 곳에서도 cache배열값을 건드리는 부분이 없는데 왜 17, 18번째 줄이 동작하여 시간이
감소되는지가 궁금합니다
17번째줄에서 &(레퍼런스)는 내부 동작이 포인터와 동일합니다.
따라서 ret의 값을 바꾸는 행위는 ret이 가리키고 있는 곳의 값을 바꾸는 행위와 동일하게 되어
cache[l][r]의 값을 27번줄을 통해서 넣어주게 됩니다.
아 그러면 cache배열이 메모이제이션을 담당하는 것이군요
감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
choah76 1년 전
시간초과가 나던 코드에 어떤 분이 알고리즘은 비슷한데 cache배열을 추가한 코드가 있길래 적용해보았습니다.
9줄에 cache배열을 선언하고 17, 18, 41줄을 추가했습니다.
그랬더니 시간초과가 나지 않더군요
그런데 cache배열은 memset으로 -1값을 넣는것 말고는 어떤 곳에서도 cache배열값을 건드리는 부분이 없는데 왜 17, 18번째 줄이 동작하여 시간이
감소되는지가 궁금합니다