[Python] Recursion Error 재귀 함수 오류 최대 한도 제한 변경

 


1. 문제

알고리즘 문제를 해결하던 중에, python을 이용하여 dfs 문제를 푸는 경우가 있었습니다. 이 때, 재귀함수를 사용하고 나서 Recursion Error 런타임 에러가 발생했습니다. 이는 python의 기본 재귀함수 깊이가 1000으로 한도가 설정되어 있기 때문입니다. 알고리즘은 맞는데 이런 문제로 시간을 많이 사용하면 시간이 크게 날아가니, 재귀함수 문제가 통과가 안될 때에는 이런 문제를 생각해보시는 것도 좋을 것 같습니다.

2. 문제 해결 방법

위의 문제를 해결해 주기 위해서는, python sys 모듈에 있는 setrecursionlimit 메소드를 사용하면 해결됩니다. 아래와 같은 방식으로 최대 재귀함수의 깊이를 원하는 만큼 설정해주면 손쉽게 문제를 해결할 수 있습니다.

import sys
sys.setrecursionlimit(10**5)
# 소스코드 작성
# ~~~
# ~~~