⤴️

python で再帰を使う場合には再帰上限数を増やしておく

2021/06/06に公開

AtCoder Beginner Contest 204 で RE(Runtime Error)に遭遇。

何度コードを確認してみても原因分からず(RE いくつか増やしてしまった後に)検索してみたところ、 AtCoder で RE の解消の仕方がわかりません という teratail の QA に、次のように書かれているのを発見した。

n>1000あたりで再帰回数がpythonの上限を超えランタイムエラーを起こします。
sys.setrecursionlimit()で再帰突入回数の上限を変更できます(デフォルトは通常1000)

これを参考に、自分のコードの冒頭に次の2行を付与して投稿したら AC とれた。

import sys
sys.setrecursionlimit(100000)

解説のサンプルコードにも同じように書かれていたので、これは定石なのだろう。
今週も一つ学びを得た。

Discussion