pengantar
Array juga dapat dilihat sebagai bidang untuk bola memantul. Ini tentu saja terdengar sangat samar, jadi di sini adalah contoh input:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Tantangannya adalah untuk mengeluarkan array memantul . Ini terbuat dari pola diagonal yang memantul di tepi lapangan. Jalan ini menunjuk ke atas . Jalur untuk lompatan memantul pertama (di mana lintasan langsung memantul dari egde), adalah:
[1, -, -, -, 5, -, -, -, 9]
[-, 8, -, 6, -, 4, -, 2, -]
[-, -, 3, -, -, -, 7, -, -]
Dari kiri ke kanan, ini akan menghasilkan [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Ini adalah lambung terpental pertama kami . Jalur untuk lambung terpental kedua:
[-, 2, -, -, -, 6, -, -, -]
[9, -, 7, -, 5, -, 3, -, 1]
[-, -, -, 4, -, -, -, 8, -]
Ini menghasilkan [9, 2, 7, 4, 5, 6, 3, 8, 1]
. Jalur untuk lompatan ketiga adalah:
[-, -, 3, -, -, -, 7, -, -]
[-, 8, -, 6, -, 4, -, 2, -]
[1, -, -, -, 5, -, -, -, 9]
Ini menghasilkan [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Jadi tiga bouncing array adalah:
[1, 8, 3, 6, 5, 4, 7, 2, 9]
[9, 2, 7, 4, 5, 6, 3, 8, 1]
[1, 8, 3, 6, 5, 4, 7, 2, 9]
Tugas
Diberikan setidaknya 1 array yang hanya berisi bilangan bulat non-negatif, dengan semua array memiliki panjang yang sama, mengeluarkan semua array yang memantul.
Uji kasus
Uji kasus 1:
Input: Output:
[1, 2, 3, 4, 5] [1, 7, 3, 9, 5]
[6, 7, 8, 9, 0] [6, 2, 8, 4, 0]
Input: Output:
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
Input: Output:
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
[9, 9, 9, 9, 9, 9, 9, 100] [9, 0, 9, 0, 9, 0, 9, 0]
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
Input: Output:
[0, 1, 2, 3, 4, 5] [0, 7, 14, 9, 4, 11]
[6, 7, 8, 9, 10, 11] [6, 1, 8, 15, 10, 5]
[12, 13, 14, 15, 16, 17] [12, 7, 2, 9, 16, 11]
Input: Output:
[0, 0, 0, 0, 0, 0] [0, 2, 2, 6, 2, 6]
[1, 2, 3, 4, 5, 6] [1, 0, 3, 2, 5, 2]
[2, 2, 2, 2, 2, 2] [2, 2, 0, 4, 2, 4]
[9, 8, 7, 6, 5, 4] [9, 2, 3, 0, 5, 2]
Ini adalah kode-golf , jadi pengiriman dengan jumlah byte paling sedikit menang!
Jawaban:
Pyth, 17 byte
Penjelasan:
Coba di sini .
sumber
JavaScript (ES6), 70
UJI
sumber
CJam,
3130 byteInput dan output sebagai daftar array gaya CJam.
Uji di sini.
Paling pasti golf ...
sumber
Jelly,
292524 byteTerima kasih untuk @ Sp3000 karena membantu saya bermain golf 5 byte!
Cobalah online!
sumber
Ruby (2.2.2p95), 124 byte
Ini mungkin jauh lebih baik. Saya akan mencari tahu bagaimana nanti!
sumber
Japt,
55494139 byteWow, itu benar-benar rumit dan sangat menyenangkan.
Uji secara online!
Keluaran dalam urutan terbalik ke contoh. Ini akan sedikit memecah pada input lebih dari 100 array; semoga ini tidak membuat banyak perbedaan.
Versi yang tidak bersaing, 36 byte
Saya telah mengimplementasikan dua fungsi angka ini sebelum tantangan:
ò
- sama sepertio
, tetapi mengembalikan[X..Y]
bukan[X..Y)
ó
- sama sepertio
, tetapi mengembalikan[X..X+Y)
bukan[X..Y)
Tetapi karena salah tempat
0
, mereka buggy dan selalu mengembalikan array kosong. Ini sekarang sudah diperbaiki.Uji secara online!
sumber
Python 2,
107106108105104 byte(Menjatuhkan beberapa parens tambahan) (Lokasi awal salah (ب_ب)) (sudah memiliki daftar panjang itu)
Adalah sah untuk memiliki input sebagai argumen untuk suatu fungsi, bukan? Ini adalah pertama kalinya saya mengirimkan jawaban kode golf saya.
sumber
APL, 33 karakter
Asumsikan ⎕IO ← 0. Idenya adalah bahwa gerakan memantul dapat diperoleh dengan pergeseran sederhana ke atas dari matriks, jika matriks asli ditambah sepanjang dimensi pertama dengan matriks terbalik dengan baris pertama dan terakhir dicukur. Secara grafis:
dari
Dalam APL
reverse
danupward rotate
adalah simbol yang sama:⊖
.sumber
⊃
bukannya0⌷
.Clojure, 125 byte
Wow, akumulasi karakter ini cukup cepat.
Hanya mencoba menyimpan byte dengan
let
-menentukan nilai yang sering digunakan.sumber
Jelly *, 15 byte
Cobalah online!
* Versi terbaru
sumber