본문 바로가기
오류 해결

백준 파이썬 RecursionError

by 다빈치코딩 2023. 9. 7.

목차

    반응형

    재귀함수 문제를 풀다보면 가끔 RecursionError라는 것이 발생 합니다. 재귀함수가 계속 실행되면 파이썬 입장에서는 무한루프에 빠진것이 아닌가하는 생각을 하게 됩니다. 그래서 일정 수준의 재귀함수가 호출된다면 에러가 발생하게 됩니다. 

    재귀 최대 깊이 확인하기

    파이썬이 정한 최대 재귀 함수의 깊이는 아래 코드로 확인할 수 있습니다.

    import sys
    print(sys.getrecursionlimit())

    DFS, 다이나믹 프로그래밍등을 재귀로 구현했다면 파이썬이 정한 최대 깊이로는 에러가 발생할수 밖에 없습니다. 따라서 이 문제는 재귀함수가 많이 호출될 거라는 것을 알려주어야 RecursionError가 발생하지 않습니다. 

    재귀 최대 깊이 수정하기

    재귀의 최대 깊이를 수정하는 방법은 아래와 같습니다.

    import sys
    sys.setrecursionlimit(10**6)

    여기서는 $10^6$ 정도로 최대 깊이를 지정하였지만 문제에 따라서 더 깊이 설정해야 하는 경우도 있습니다. 문제에 맞게 최대 깊이를 지정해 주면 됩니다.

    백준 재귀 최대 깊이

    참고로 백준의 재귀 최대 깊이는 1000 입니다.

     

    반응형

    '오류 해결' 카테고리의 다른 글

    파이썬 버전에 따른 백준 런타임 에러(TypeError)  (0) 2023.08.15