'_ctypes' 모듈
- system에
libffi-devel
이 없어서 생기는 문제
해결책 1.
- 현재
pyenv
혹은 사용하는 python version
을 체크하고
$ pyenv versions
libffi-dev
패키지 설치
$ sudo apt update && sudo apt install libffi-dev
- 현재 사용하는
python version
환경을 지우고 재 설치
3-1. 본인은 pyenv
를 사용하므로 아래의 명령으로 파이썬 지우고 재설치
$ pyenv uninstall <Current Version>
$ pyenv install <Current Version>
재귀 문제
RecursionError
는 재귀와 관련된 에러
- Python이 정한 최대 재귀 깊이는
sys.getrecursionlimit()
을 이용해 확인할 수 있다.
- BOJ 사이트의 채점 서버에서 재귀 허용 값은 1,000 이다.
- 내 시스템
나도 1000이다.
재귀 깊이 측정
print(calc(n))
함수는 n=1000 일 때, 1002 개 스택을 사용한다.
방법 1. 재귀 깊이 변경
import sys
sys.setrecursionlimit(10**6)
- 내 시스템에서 재귀 깊이를 106으로 설정하였다.
방법 2. DFS -> BFS
방법 3. DP(재귀) -> DP(반복문)
방법 4. 재귀 횟수 제한
def bomb(head,depth):
origin_move=ball_list[head].num
result.append(ball_list[head].origin_idx)
del ball_list[head]
if len(ball_list) == 0:
return 0
...중략...
if depth == 500:
return target
return bomb(target,depth+1)
target=bomb(0,1)
while True:
if target==0:
break
else:
target=bomb(target,1)