#再帰呼出
再帰呼出に挑戦 「Python 18 lines: 8-Queens Problem」より
先日、Python の 18行プログラム「8-Queens Problem」を紹介しました。
この記事の最後に次のような問題を2つ提示しました。
(1)関数「under_attack」を再帰呼出で書けるでしょうか。
(2)関数「solve」を再帰呼出を使わずに書けるでしょうか。
そして今回は回答編です。
関数「under_attack」を再帰呼出で書いてみたBOARD_SIZE = 8d
【Python】SimplePrograms 18 lines: 8-Queens Problem (recursion)
プログラム18行プログラムです。
BOARD_SIZE = 8def under_attack(col, queens): left = right = col for r, c in reversed(queens): left, right = left - 1, right + 1 if c in (left, col, right):