1
2
3
4
5
6
7
8
|
from functools import lru_cache
@lru_cache()
def nth_fibo(n):
if n==0: return 0
elif n==1 or n==2 : return 1
else : return nth_fibo(n-1)+nth_fibo(n-2)
print(nth_fibo(int(input())))
|
cs |
1
2
3
4
5
6
7
8
9
|
from functools import lru_cache
import sys
sys.setrecursionlimit(10**6)
@lru_cache()
def nth_fibo(n):
if n==0: return 0
elif n==1 or n==2 : return 1
else : return nth_fibo(n-1)+nth_fibo(n-2)
print(nth_fibo(int(input())))
|
cs |
Line 4는 함수의 결과를 캐시에 가지고 있게 해주는 함수입니다
1번처럼했다가 recursion에러가 나와서 백준 문서(https://help.acmicpc.net/judge/rte/RecursionError)를 읽어보니
백준 채점서버에는 재귀깊이가 1000으로 돼있어서 그 limit를 Line3 과 같이 키워줘서 해결했습니다
반응형
'python-algorithm' 카테고리의 다른 글
백준 2776 암기왕 (0) | 2021.12.23 |
---|---|
백준 17219 비밀번호 찾기 (0) | 2021.12.23 |
백준 1302 베스트셀러 (0) | 2021.12.22 |
백준 10825 국영수 (0) | 2021.12.21 |
백준 11656 접미사 배열 (0) | 2021.12.21 |
댓글