JPEG標準は、圧縮アルゴリズムの一部として、交互の方向の対角線に沿って行列を展開してベクトルにします。
あなたの仕事は、展開されたベクトルを行列の次元とともに取得し、対応する行列を再構築することです。例として:
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3
もたらすべきです
[1 2 3 4
5 6 7 8
9 1 2 3]
一方、寸法6, 2
は
[1 2 6 3 1 2
5 9 4 7 8 3]
ルール
入力としてディメンションの1つのみを選択することもできます。個々の入力は任意の順序で取得できます。幅と高さが正であり、指定されたベクトルの長さに対して有効であると仮定できます。
ベクトル要素はより小さい正の整数であると仮定でき10
ます。
プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。
入力ベクトルは、便利で明確なフラットリストまたは文字列形式で指定できます。
出力マトリックスは、便利で曖昧さのないネストされたリストまたは文字列形式、または両方のマトリックス次元と一緒にフラットリストにすることができます。(または、もちろん、あなたの言語がそれらを持っているなら、マトリックス型として。)
標準のコードゴルフ規則が適用されます。
テストケース
各テストケースの形式はvector width height => matrix
です。
[1] 1 1 => [[1]]
[1 2 3 1] 2 2 => [[1 2] [3 1]]
[1 2 3 1] 4 1 => [[1 2 3 1]]
[1 2 5 9 6 3 4 7 1 2 8 3] 3 4 => [[1 2 3] [5 6 4] [9 7 8] [1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 4 3 => [[1 2 3 4] [5 6 7 8] [9 1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 6 2 => [[1 2 6 3 1 2] [5 9 4 7 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 12 1 => [[1 2 5 9 6 3 4 7 1 2 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 1 12 => [[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]]
関連する課題
- Zigzagify a Matrix(やや単純な逆変換)
- 対角線を回転させる