オフラインリアルタイムどう書く E27 の解答例

問題 : http://nabetani.sakura.ne.jp/hena/orde27cardgame/
実装リンク集 : https://qiita.com/Nabetani/items/cdc102d186faaf542574

久々に勝ちました。

割と素直な実装です。計算量的に大丈夫かかなり不安だったけど結構すぐだった。

8枚のうち、ストーリーとカインドは2個のまとまりが必要なので枚数でいうとパターンが少ない。列挙すると以下の通り。

patterns = [
  [8],
  [6, 2],
  [5, 3],
  [4, 4],
  [4, 2, 2],
  [3, 3, 2],
  [2, 2, 2, 2],
]

この枚数にたいしてストーリーあるいはカインドをつくって抜いて、と再帰すればよい。

初期実装は再帰じゃなくて if の羅列になってて結構汚いです。

github.com

リファクタリングしたほう

github.com