본문 바로가기
python-algorithm

백준 10826 피보나치 수 4

by 무적김두칠 2021. 12. 22.

1
2
3
4
5
6
7
8
from functools import lru_cache
 
@lru_cache()
def nth_fibo(n):
    if n==0return 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==0return 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

댓글