Recent Posts
Recent Comments
에르노트
파이썬 재귀 깊이 제한 해제 (sys.setrecursionlimit()) 본문
개인적으로 그닥 좋아하지는 않지만, 재귀함수는 코딩을 하다보면 언젠가는 사용해야 할 필수불가결한 로직 형태의 하나이다. 그런데 간결함을 추구하는 파이썬의 철학 때문인지 기본으로 설정된 재귀 깊이(1000)가 너무 얕다. 그래서 코딩테스트 등에서 재귀 함수 관련된 문제를 풀 때는 로직을 제대로 설계했어도 테스트케이스를 통과하지 못할 수도 있다.
그럴 때는 간단히 setrecursionlimit() 함수를 이용하여 문제를 해결할 수 있다. setrecursionlimit()은 표준모듈 sys에 들어있으므로 미리 import해서 사용한다.
import sys
sys.setrecursionlimit(10**6)
이러면 백만 번까지 재귀를 돌릴 수 있게 된다. 컴퓨터 성능이 따라주는 선에서 얼마든지 Recursion Limit(재귀 제한)을 늘려도 된다. 로직에는 분명히 문제가 없는데도 런타임 에러가 난다면 한번쯤 재귀 깊이 제한을 생각해보자!
'Dev > Python' 카테고리의 다른 글
파이썬 문자 유니코드 변환 (ord 함수, chr 함수) (1) | 2021.11.14 |
---|---|
파이썬 리스트 컴프리헨션 (List Comprehension) (0) | 2021.11.12 |
파이썬 self (takes 0 positional arguments but 1 was given FIX) (2) | 2021.07.31 |
파이썬 논리 연산자 - and, or, not (2) | 2021.07.24 |
Comments