次のように、一意の番号を持つ空ではなく、並べ替えられていない有限行列を定義します
4つのマトリックスの動きを次のように定義します。
- ↑*(上):列を上に移動します
- ↓*(下):列を下に移動します
- →*(右):行を右に移動します
- ←*(左):行を左に移動します
アスタリスク(*)は、移動の影響を受ける列/行を表します(0インデックスまたは1インデックスにすることができます。あなた次第。答えの1つを明記してください)。
課題は、上記の動きを使用して、マトリックスを昇順でソートすることです(左上隅が最も低く、右下隅が最も高い)。
例
↑0
↓0
→0
↑0↑1←1↑2
↑0↑2→0→2↑0→2↑1↑2←1
↑2↑1←3→0←3↓0←0←2→3↑3↑4
入力:
または任意の動き
入力:
ノート
- 異なる正しい出力が存在する可能性があります(テストケースまたは最短のものと必ずしも同じである必要はありません)
- あなたはそれが常に行列を注文する方法であると仮定することができます
- エッジが接続する(pacman:vのように)
- 9列以上の行列はありません
- 行列には正の非ゼロの一意の整数のみが含まれていると仮定する
- 数字以外の4つの異なる値を使用して移動を表すことができます(その場合は、答えにそれを明記してください)
- 列/行には0または1のインデックスを付けることができます
- 受賞基準コードゴルフ
追加のテストケースはいつでも歓迎です
←0←0
ソリューションを指定した2番目の例の有効なソリューションです→0
。もしそうなら、移動オプションの半分はおそらく使用されないと思います。