結果
| 問題 | No.401 数字の渦巻き |
| コンテスト | |
| ユーザー |
AreTrash
|
| 提出日時 | 2023-03-24 05:52:21 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 32 ms / 2,000 ms |
| コード長 | 740 bytes |
| コンパイル時間 | 79 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-09-18 15:52:37 |
| 合計ジャッジ時間 | 1,852 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
n = int(input()) # マス目のサイズ
# マス目を初期化する
grid = [[0 for _ in range(n)] for _ in range(n)]
# 始点を設定する
x, y = 0, 0
# 方向を設定する
directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]
dx, dy = directions[0]
# 数字を入力する
for i in range(n**2):
grid[x][y] = str(i + 1).zfill(3)
# 次の座標を求める
nx, ny = x + dx, y + dy
# 次の座標が範囲外かすでに通った場所ならば、直角に曲がる
if not (0 <= nx < n and 0 <= ny < n) or grid[nx][ny] != 0:
dx, dy = directions[(directions.index((dx, dy)) + 1) % 4]
nx, ny = x + dx, y + dy
x, y = nx, ny
# マス目を出力する
for row in grid:
print(*row)
AreTrash