Python Recursion Error 해결 - runtime Error

정기홍·2024년 12월 3일
0

코딩테스트_파이썬

목록 보기
20/49

Python Recursion Error 해결하기

안녕하세요! 오늘은 Python에서 자주 발생하는 재귀 오류(RecursionError)와 이를 해결하는 방법에 대해 이야기해볼게요. 재귀 호출이 너무 깊어지면 이 오류가 발생하는데요, 여러 가지 해결책이 있습니다.

1. 재귀 깊이 늘리기

Python의 기본 재귀 깊이는 1000으로 제한되어 있어요. 이 값을 늘릴 수는 있지만, 이는 일시적인 해결책일 뿐입니다. 다음과 같이 설정할 수 있어요:

import sys
sys.setrecursionlimit(1500)  # 원하는 깊이로 조정

2. 반복문으로 대체하기

재귀 대신 반복문을 사용해서 문제를 해결할 수 있는 경우가 많습니다. 예를 들어, 피보나치 수열을 계산할 때 재귀 대신 반복문을 사용할 수 있어요.

def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
    return a

3. 메모이제이션 활용하기

재귀 함수에서 같은 값을 여러 번 계산하는 경우가 많죠? 이럴 때는 메모이제이션을 활용해서 성능을 개선할 수 있습니다. functools.lru_cache를 사용할 수 있어요.

from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
  1. 알고리즘 최적화하기
    문제를 해결하는 알고리즘 자체를 최적화하는 것도 좋은 방법이에요. 예를 들어, 분할 정복 기법이나 동적 프로그래밍을 사용할 수 있죠.
profile
하나를 알고 그걸로 모든걸 관통한다.

0개의 댓글