結果
| 問題 |
No.228 ゆきこちゃんの 15 パズル
|
| コンテスト | |
| ユーザー |
aka_satana_ha
|
| 提出日時 | 2017-11-28 13:55:02 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 29 ms / 5,000 ms |
| コード長 | 1,589 bytes |
| コンパイル時間 | 81 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-11-27 12:57:07 |
| 合計ジャッジ時間 | 1,280 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
goal=[]
for i in range(4):
line=[int(i) for i in input().split()]
goal.append(line)
# print(goal)
#init
puzzle=[]
puzzle.append([1,2,3,4])
puzzle.append([5,6,7,8])
puzzle.append([9,10,11,12])
puzzle.append([13,14,15,0])
moved=[[False for i in range(4)] for j in range(4)]
zero_pos=[3,3]
while(1):
# print(zero_pos)
# for i in range(4):
# print(puzzle[i])
# print('\n')
if puzzle==goal:
print("Yes")
break
zero_pos_y=zero_pos[0]
zero_pos_x=zero_pos[1]
goal_num=goal[zero_pos_y][zero_pos_x]
#↑
if zero_pos_y!=0:
if goal_num==puzzle[zero_pos_y-1][zero_pos_x]:
zero_pos=[zero_pos_y-1,zero_pos_x]
puzzle[zero_pos_y-1][zero_pos_x]=0
puzzle[zero_pos_y][zero_pos_x]=goal_num
continue
#↓
if zero_pos_y!=3:
if goal_num==puzzle[zero_pos_y+1][zero_pos_x]:
zero_pos=[zero_pos_y+1,zero_pos_x]
puzzle[zero_pos_y+1][zero_pos_x]=0
puzzle[zero_pos_y][zero_pos_x]=goal_num
continue
#←
if zero_pos_x!=0:
if goal_num==puzzle[zero_pos_y][zero_pos_x-1]:
zero_pos=[zero_pos_y,zero_pos_x-1]
puzzle[zero_pos_y][zero_pos_x-1]=0
puzzle[zero_pos_y][zero_pos_x]=goal_num
continue
#→
if zero_pos_x!=3:
if goal_num==puzzle[zero_pos_y][zero_pos_x+1]:
zero_pos=[zero_pos_y,zero_pos_x+1]
puzzle[zero_pos_y][zero_pos_x+1]=0
puzzle[zero_pos_y][zero_pos_x]=goal_num
continue
print("No")
break
aka_satana_ha