파이썬 재귀 호출 길이 설정 (feat. sys.setrecursionlimit)

SCY·2022년 12월 10일

Python

목록 보기
1/2

파이썬 재귀함수 런타임 에러 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12900

위의 프로그래머스 테스트 문제를 풀다가 이유 모를 런타임에러(Runtime Error)를 맞이하였다. 문제는 굉장히 단순한 피보나치수열 계열의 문제였고, 단순히 재귀함수로 풀기에는 계산복잡도가 크기 때문에 DP/메모이제이션(memoization)을 적용하였다. 그래도 에러는 여전히 발생하였다..

결론부터 얘기하면, 파이썬의 재귀함수의 최대 재귀길이는 1000으로 제한되어 있다. 따라서 조금만 많은(>1000) 재귀호출이 발생한다면 런타임에러가 발생한다.

이를 해결하기 위해서는 아래와 같은 재귀길이 설정이 반드시 필요하다.

import sys
sys.setrecursionlimit(10 ** 6)
profile
ML/DL

0개의 댓글