遠く離れた王国では、チェスの女王は1からまでの番号が付けられたらせん状の小道を毎日歩いておりn
、スパイラル自体に追従するのではなく、単にチェス盤でするように女王の動きをします。女王は彼女の被験者に愛され、彼らは彼女が彼女の道を訪問するすべての広場を書き留めます。女王が任意の正方形で散歩を開始し、任意の正方形でそれを終了できるとすると、女王が歩くことができる最短の女王の散歩は何ですか?
チャレンジ
長方形のグリッドに整数のスパイラルが与えられた場合、チェスのクイーンの動きを使用して、このスパイラルグリッド上の2つの数値間の最短経路(移動したセルの数で数えられる)の1つを返す関数を記述します。
たとえば、from 16
から25
:
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
可能なパスには、16, 4, 2, 10, 25
およびが含まれ16, 5, 1, 9, 25
ます。
ルール
- 入力は任意の2つの正の整数になります。
- 出力は、直交移動と斜め移動のみを使用して、らせんを横切る整数のパス(両方の端点を含む)になります。
- パスの長さは、移動したセルの数によってカウントされます。
- あなたの答えはプログラムか関数かもしれません。
- これはコードゴルフなので、最小バイト数が優先されます。
いつものように、問題が不明な場合はお知らせください。幸運と良いゴルフを!
テストケース
>>> queen_spiral(4, 5)
4, 5
>>> queen_spiral(13, 20)
13, 3, 1, 7, 20
>>> queen_spiral(14, 14)
14
>>> queen_spiral(10, 3)
10, 11, 3
>>> queen_spiral(16, 25)
16, 4, 2, 10, 25
>>> queen_spiral(80, 1)
80, 48, 24, 8, 1