728x90
백준에서 문제를 풀 때 런타임 에러가 뜬 적이 있습니다.
저는 시간초과에 걸린 줄 알고 "아.. 코드를 수정해야겠다" 생각했습니다.
하지만 원인은 시간 초과가 아니었죠.
런타임 에러(RecursuinError) 난 것입니다.
이런 경우는 처음 있었기에 찾아본 결과 파이썬은 재귀 함수의 깊이 제한을 기본 1000회로 설정해 놓는다는 것입니다.
즉, 제가 쓴 코드가 재귀 호출을 1000번 이상하는 것이죠.
하지만 해결하는 방법이 있었습니다.
import sys
sys.setrecursionlimit(limit_number)
import sys를 해주고 setrecursionlimit(limit_number)를 해주면 됩니다.
limit_number는 정수의 숫자이며 원하는 값을 넣어주면 됩니다.
1000번이 기본이기에 저는 106 = 1,000,000(1백만)을 해주었더니 문제는 해결됐습니다.
import sys
sys.setrecursionlimit(10**6)
너무 많은 재귀 호출은 메모리 공간을 차지하기 때문에 메모리 초과를 불러올 수도 있습니다.
728x90
'[Python]' 카테고리의 다른 글
[Python] 파이썬 문자열 대소문자 변환, 대소문자 확인 : upper(), lower(), isupper(), islower() (0) | 2022.07.02 |
---|---|
[Python] 파이썬 packing과 unpacking - print(*list) (0) | 2022.07.02 |
[Python] 파이썬 .set() 생성자 사용법 (0) | 2022.06.18 |
[Python] 딕셔너리 : .keys(), .values(), .items() 메서드 사용법 (0) | 2022.06.18 |
[Python] 파이썬의 삼항연산자 (0) | 2022.05.20 |