結果
問題 | No.401 数字の渦巻き |
ユーザー |
|
提出日時 | 2017-01-05 16:54:57 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 1,213 bytes |
コンパイル時間 | 303 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-12-16 10:00:56 |
合計ジャッジ時間 | 2,309 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
# yukicoder No.401 数字の渦巻き# 次に埋めるべきインデックスと動かす方向を返す関数def tugi(i, j, d, uzu, N):if d == "e":if (j + 1) <= (N - 1) and uzu[i][j + 1] == 0: # はみ出さないか、既に埋まってないかreturn (i, j + 1, d)else: # 条件を満たさないなら動かす方向を変えるreturn (i + 1, j, "s")elif d == "s":if (i + 1) <= (N - 1) and uzu[i + 1][j] == 0:return (i + 1, j, d)else:return (i, j - 1, "w")elif d == "w":if (j - 1) >= 0 and uzu[i][j - 1] == 0:return (i, j - 1, d)else:return (i - 1, j, "n")else:if (i - 1) >= 0 and uzu[i - 1][j] == 0:return (i - 1, j, d)else:return (i, j + 1, "e")N = int(input())uzu = [[0 for _ in range(N)] for _ in range(N)]i, j = 0, 0d = "e" # 動かしていく方向、eが右、sが下、wが左、nが上for n in range(1, N ** 2 + 1):uzu[i][j] = '{:03d}'.format(n)i, j, d = tugi(i, j, d, uzu, N) # 次に埋めるインデックスと動かす方向をもらうfor i in range(N):print(*uzu[i])