취준/백준
[백준][Python][2747][lru_cache] 피보나치 수
puff
2020. 3. 4. 11:09
문제 : https://www.acmicpc.net/problem/2747
python 3.2 이상 기준이다.
functools 의 lru_cache decorator 는 memoization을 자동으로 한다.
지금 밑의 코드를 보면 재귀로 피보나치를 구현했다. 하지만, 파이썬 인터프리터가 자동으로 함수의 값을 저장해 memoization과 같은 방식으로 동작하게 한다.
import functools
@functools.lru_cache()
def fibo(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibo(n-1)+fibo(n-2)
print(fibo(int(input())))