Python - μ΅λ μ¬κ· νλ κΉμ΄λ‘ μΈν Runtime Error ν΄κ²° λ°©λ²
π‘ How to solve Python's Recursion ERROR?
β λ°±μ€ λ¬Έμ 11123λ²μ νκ³ μ μΆνλ μ€ λ°νμ μλ¬(recursion error)λ₯Ό λ§λ¬μ λ
β μκ³ λ¦¬μ¦ λ° κΈ°λ³Έμ μΈ λ‘μ§μ λ€ λ§λλ° μ λ°νμ μλ¬(recursion error)κ° λ¨λμ§ μ§μνμ§ λͺ»νκ³ μμ λ
β κ·Έλν νμ λ¬Έμ μμ μ¬κ· νΈμΆμ μ¬μ©νμ¬ νλ‘κ·Έλλ°μ νμ λ

μμ κ²½μ°μ ν΄λΉνλ€λ©΄, νμ΄μ¬ μ¬κ· κΉμ΄ μ νμ κ±Έλ Έμ κ°λ₯μ±μ΄ λ§€μ° λλ€. μ°λ¦¬λ μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό ν λ μ¬κ· νΈμΆμ μ΄μ©νμ¬ νΈλ κ²½μ°κ° κ΅μ₯ν λ§μλ°, μ΄ λ λ¬Έμ μμ μ¬κ·λ₯Ό λ§μ΄ λ릴 κ²½μ° μμΈ λ―Έμμ λ°νμ μλ¬(recursion error)μ λΉ μ§κ² λλ€.
β οΈ νμ΄μ¬(Python)μμλ 1000λ² μ΄μμ μ¬κ·(recursion)κ° λ°μνλ©΄ μλ¬κ° λ¬λ€. κΈ°λ³Έ μ¬κ· κΉμ΄ μ νμ΄ λ§€μ° μ κΈ° λλ¬Έμ λ°λμ sys.setrecursionlimit() ν¨μλ₯Ό μ¬μ©νμ¬ μ¬κ· κΉμ΄λ₯Ό ν¬κ² μ‘μμ£Όμ΄μΌ νλ€.
import sys
sys.setrecursionlimit(100000)
=> μ½λμ μλ¨μ μμ±ν΄μ£Όλ©΄ μ¬κ·μ μ΅λ κΉμ΄κ° 100000μΌλ‘ λ°λκ² λλ€. (κ΄νΈ μμ μ«μλ νμμ λ°λΌ μμ μ΄ μμμ μΌλ‘ μ€μ κ°λ₯)
λ¨, pypyμμλ sys.setrecursionlimitμ μ¬μ©νμ¬ μμλ‘ μ¬κ·μ μ΅λ κΉμ΄λ₯Ό μ€μ ν μ μλ€.
νμ΄μ¬μΌλ‘ μ¬κ·λ₯Ό μ¬μ©ν΄ λ¬Έμ λ₯Ό ν λ(νΉν BFS, DFS)λ νμ μ ν¨μλ₯Ό μ¬μ©νμ¬ μ½λλ₯Ό μμ±νλ κ²μ΄ μ’λ€!