문제 : 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())))
'취준 > 백준' 카테고리의 다른 글
[백준][Python][13549][BFS] 숨바꼭질 3 (0) | 2020.03.07 |
---|---|
[백준][Python][14225][브루트 포스] 부분수열의 합 (0) | 2020.03.05 |
[백준][Python][15686][브루트포스] 치킨 배달 (0) | 2020.03.03 |
[백준][Python][1697][BFS] 숨바꼭질 (0) | 2020.03.02 |
[백준][Python][2529][Greedy...?] 부등호 (0) | 2020.03.01 |