パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

CodinGameのPRACTICEの解き方4 文字列操作で未知のゲーム、スラカルタに挑む

2021-11-17 | 速攻で言語マスターしてみませんか

インドネシアの奥深く、かつて王朝から名を取ったスラカルタ、現地での名前はPermainan意味はゲーム。

相手の駒を取る時に端にあるループを一回は通らないと駒が取れないという。世界唯一のルールらしい。

この未知のゲームに前回ここで紹介した文字列操作と関数、if、for、whileというシンプルな構成で解いて

みます。

 

前回の文字列操作に関して

Python3なら文字列操作を400文字で説明できます

 

問題の難易度はMEDIUMですが解いた人が全体の19%とHARD級の難しさが想定されます。ルールは複雑

なので参考文献の2つめを参考に簡単に説明すると6x6の交点に駒を配置でき、二つの大きな曲線が各コーナー

に2ついていて、コーナーをぐるっとまわって相手の駒に最初に接触したとき相手の駒を取ることができます。

各テストケースで自分の駒が相手の駒を取れるパターンの総数を答えるという問題です。

 

回し蹴りでないと倒せないといったところです。

辞書を使って解いてしまったのですが、使わなくても解けるということで修正したのがこちらです。

 

<参考文献>

https://www.codingame.com/training/medium/surakarta

https://www.nakajim.net/index.php?Surakarta


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。