Piet adalah bahasa pemrograman yang menarik karena sejumlah alasan. Hari ini kita akan fokus pada satu alasan: perintah roll . Perintah roll awalnya dari PostScript dan merupakan cara yang ampuh untuk memanipulasi tumpukan.
Perintah roll memunculkan dua elemen teratas stack dan menggunakannya sebagai parameter. Kami akan memanggil nilai pertama yang muncul turns
dan yang kedua depth
. Beralih ke kedalaman n akan mengambil elemen paling atas dari tumpukan, menjadikannya elemen ke-n dalam tumpukan, dan memindahkan setiap elemen di atasnya ke atas satu. Jika turns
negatif ini dilakukan dalam arah yang berlawanan. Artinya, elemen ke-n dipindahkan ke atas dan elemen lainnya dipindahkan ke bawah. Ini berulang abs(turns)
kali.
Tantangan
Tulis program atau fungsi yang mengambil tumpukan dan mengembalikan tumpukan itu setelah menjalankan gulungan.
Aturan
- Input dan output mungkin dalam daftar, array, string dengan pembatas, diteruskan dalam satu elemen pada suatu waktu, atau format lain yang masuk akal. Output harus dalam format yang sama dengan input.
depth
tidak akan pernah menjadi negatif dan tidak akan pernah lebih besar dari panjang tumpukan.- Tumpukan input akan selalu mengandung setidaknya dua elemen.
- Ini adalah kode-golf sehingga jawaban terpendek dalam setiap bahasa menang. Karena itu, saya tidak akan menerima jawaban.
- Celah standar dilarang.
Uji Kasus
in: out:
2
4
1 3
2 4
3 1
4 2
5 5
6 6
in: out:
-2
3
1 2
2 3
3 1
in: out:
-42
0
1 1
2 2
3 3
4 4
5 5