반응형
백준에서 1012번 문제 (유기농 배추)를 풀던 중 DFS알고리즘을 사용하여 제출해보니 런타임 에러 (RecursionError)가 발생하였습니다. 찾아보니 백준 채점시스템에서는 최대 재귀 깊이를 1,000을 default값으로 정해놓았다고 합니다. 이 런타임 에러 (RecursionError)는 그 최대 깊이를 초과하여 재귀 호출을 하기 때문에 발생합니다.
해결방법으로는 sys.setrecursionlimit() 를 사용하여 최대 재귀 깊이를 늘려주는 방법이 있습니다.
오류가 발생한 소스 코드 맨 윗 부분에 아래와 같은 코드를 삽입하여주면 해결이 가능합니다.
# sys.setrecursionlimit() 괄호 안에는 지정할 최대 재귀 깊이를 넣어주면 됩니다.
# 아래의 코드에서는 (10**7)로 제한(지정)을 해주었습니다.
import sys
sys.setrecursionlimit(10**7) # 최대 재귀 깊이 10,000,000으로 제한
'''
런타임에러(RecursionError)가 발생하였던 소스코드
'''
위의 코드블럭과 같이에러가 발생하였던 소스코드 가장 윗 부분에
import sys
sys.setrecursionlimit(10**7)
를 작성하여 주시면 런타임 에러(RecursionError)가 해결이 됩니다. 이 방법을 사용하였는데도 런타임 에러가 발생한다면 sys.setrecursionlimit(10**7)에서 괄호 안에 들ㅇ어간 10**7을 보다 더 큰 수로 바꾸어 주면 됩니다. ex) 10**9
반응형
'파이썬[Python]' 카테고리의 다른 글
파이썬[Python] 랜덤 팀 생성기(코드) (0) | 2022.01.26 |
---|---|
파이썬[Python] 기준을 정하여 정렬하기( with key=lambda) (0) | 2022.01.19 |
파이썬[Python] sort()와 sorted()의 차이 (0) | 2022.01.16 |
파이썬[Python] 리스트 내의 요소의 개수 구하기 / 리스트 내의 특정 요소의 개수 구하기 (0) | 2022.01.13 |
파이썬[Python] 문자열 거꾸로 출력하는 법 3가지 (0) | 2022.01.08 |
최근댓글