パーソナルブログメモリ

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

輪の数を数える問題を解く過程

2022-01-03 | 2日でPython3

CodinGameの「今週の推しパズル」の問題を解く過程をご紹介

<参考問題>

https://www.codingame.com/training/medium/were-going-in-circles

 

問題はマップ情報が与えられそのなかにあるループの数を答える。

マップには矢印がついていてその方向に動く。

 

1 データを保持する

 

 

2 大雑把な基本設計をする

ここでは解くためのメインループを作って、細かい部分は関数に任せてあとで作成。

 

3 基本設計を見直す

コーディングの前に設計を見直す。なるべく楽になる方向へ修正します。

ただしデータを削ぎ落としたりすると後で必要だったりするので、データはできるだけそのまま保持。

 

4 コーディング

ややこしそうなルーチンはできるだけ外だししています。

 

4 テスト

はまるときははまります。今回はループに入っていく矢印に対しての考慮がありませんでした。

 

5 修正して完成

最初の地点に戻ったらループとしていた所を前に通った所に返ったらループと変更して完成です。

 


最新の画像もっと見る

コメントを投稿

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