rlawhdgus   7달 전

if (k[x] != -1):

a+=1

return k[x]

이 세줄을 넣지않으면 답이 정확히 나오는데 시간초과라서

메모이제이션을 검색해서 저 세줄을 넣어본건데요..

수가 완전 다르게 나오네요..

시간초과를 해결하기위해서 바꿨더니 a랑 b가 카운트가 안되는데 조언좀 해주세요.

lcr7324   7달 전

메모이제이션을 사용하는 이유는 중복된 계산을 제거하기 위해서인데, 해당 코드에서 a와 b의 값을 계산하는 과정 자체가 중복된 연산입니다.

이래서는 메모이제이션을 하는 의미가 없습니다.

a와 b의 값을 12번 줄과 15번 줄이 실행될 때 1씩 늘려서 구하는 방법이 아니라, 메모이제이션을 이용해 얻어진 k 배열의 값을 활용하여 "즉각" 구해내는 방법을 고민해보세요.

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