Katakanlah saya memiliki matriks (2D) berikut:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Putar matriks berlawanan arah jarum jam R
(tidak dalam peningkatan 90 derajat, hanya dengan 1 angka setiap kali),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Contoh lengkap:
Memasukkan:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Keluaran:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(spasi aneh adalah untuk menyelaraskan angka dalam kolom yang bagus)
"Cincin" luar matriks berputar 2 berlawanan arah jarum jam, dan kanan dalam berputar 2 juga. Dalam matriks ini, hanya ada dua cincin.
Contoh dengan 1 "dering":
2
[[1, 2],
[3, 4],
[5, 6]]
Haruskah output:
[[4, 6],
[2, 5],
[1, 3]]
Tantangan Anda adalah mengambil matriks dan integer R
, dan mengeluarkan versi terjemahan setelah R
rotasi.
Rotasi matriks 4x5 diwakili oleh gambar berikut:
Kendala:
2 ≤ M, N ≤ 100
, di mana M dan N adalah dimensi dari matriks. Dijamin bahwa minimum M dan N akan genap.1 ≤ R ≤ 80
, di mana r adalah jumlah rotasi.- Matriks hanya akan berisi bilangan bulat positif.
- Nilai tidak selalu berbeda.
- Input harus selalu berupa array 2D (jika Anda tidak dapat mengambil input runtime sebagai array 2D, maka Anda hanya perlu menemukan cara lain untuk mendapatkan input).
Test case lain, dengan nilai yang tidak berbeda:
1
[[1, 1],
[2, 2],
[3, 3]]
Output:
[[1, 2],
[1, 3],
[2, 3]]
Ini kode-golf , jadi jawaban terpendek menang!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
16 tiba-tiba digandakan saya kira itu harus: [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
?