hgk0404
hgk0404.tistory
hgk0404

공지사항

전체 방문자
오늘
어제
  • 전체 카테고리 N
    • [컴퓨터비전] N
    • [Computer Science]
      • [컴퓨터네트워크]
      • [알고리즘]
      • [자료구조 in C]
      • [C & C++]
      • [이산수학]
      • [Math]
    • [머신러닝]
      • [Numpy, Pandas]
    • [Cloud]
      • [AWS]
      • [NCP]
      • [Kubernetes]
      • [Terraform]
    • [Dev]
      • [가상환경]
      • [Linux]
      • [Docker]
    • [Python]
    • [Coding Test]
      • [백준]
      • [프로그래머스]
      • [SQL]
    • [WEB]
    • [자격증, 일상]
    • [엑셀]
    • [금융]

인기 글

최근 글

최근 댓글

250x250
hELLO · Designed By 정상우.
hgk0404

hgk0404.tistory

[python] 파이썬 : 재귀 함수 제한해제하는 방법
[Python]

[python] 파이썬 : 재귀 함수 제한해제하는 방법

2022. 6. 29. 01:00
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
'[Python]' 카테고리의 다른 글
  • [Python] 파이썬 문자열 대소문자 변환, 대소문자 확인 : upper(), lower(), isupper(), islower()
  • [Python] 파이썬 packing과 unpacking - print(*list)
  • [Python] 파이썬 .set() 생성자 사용법
  • [Python] 딕셔너리 : .keys(), .values(), .items() 메서드 사용법
hgk0404
hgk0404
공부기록

티스토리툴바