パーソナルブログメモリ

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

問題を解いていく過程をご紹介

2021-12-17 | 2日でPython3

<参考文献>

https://www.codingame.com/training/easy/magic-string

 

17:48 この問題を解いていきます。

問題文の英文を読みます。何度も読み返すと何がいいたいかだいたいわかってきます。

より正確に読み込むためにgoogle翻訳にコピペして翻訳したものを読むます。

(まだ未熟なので手戻りがよく発生します。)

 

17:58 プログラムを開始します。

初期状態のものです。CodinGameの自動生成のソースです。データの読み込みですが、

ループのものは読み込んでいるだけで保持していないのでそこから作成していきます。

 

18:02 名前順にソートして、分かれ目となる人の名前を答えるだけなのかと想定して、

作成してみました。

レアケースが通りません。いつものことです。CodinGameで問題を作成みると分かる

のですが、なかなか承認されません。私の場合2割ぐらいがなんとか通って8割は

非承認されてしまいました。相手に問題を正確に伝えるというのは難しい技術だと

最近は認識しています。またシンプルな問題も承認されにくく、スパイスのような

ひねりが効いていると通りやすい傾向があります。

 

そしてそこに見事にひっかかっているわけです。そのひとひねりの問題です。

Pってどこから...どうやら分割する文字は短いものでアルファベット順で先頭のものを

答えるようです。この問題はそれを見つけるアルゴリズムどう作りますか?というのが

主題でそれがMagic Stringのようです。

 

18:35 まだ、どう作ったらよいのかピントきていません。スプラ2のバイトとかして、

何か降りてくるのまちです。とりあえずひっかかった3問目をpassできるものを作って

みました。しかしまだ全問解けません。

 

18:40 取っ掛かりを見つけるのが大切で、固い瓶のフタのように少し進めば連鎖的に

展開することはよくあります。ようやく解けそうなアイデアがまとまったので追加で作成

していきます。見事に最期のTrickyな問題にはまります。

 

18:42 クリア

 


最新の画像もっと見る

コメントを投稿

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