Anda seorang koki dan Anda suka memasak dengan rempah-rempah Anda, tetapi baru-baru ini Anda suka mengatur rempah-rempah Anda berdasarkan seberapa sering Anda menggunakannya. Tetapi Anda tidak punya waktu untuk menulis ketika Anda menggunakan rempah terakhir. Cukup, Anda bertukar dan memindahkan rempah-rempah, dan ini tampaknya berhasil.
Tapi tentu saja Anda seorang koki dan itu berarti Anda memiliki beberapa koki. Anda memutuskan untuk memberi tahu mereka aturan sederhana tentang keterlibatan dengan rempah-rempah Anda.
Jika Anda baru-baru ini menggunakan rempah-rempah, pindahkan ke atas di rak rempah-rempah
Jika Anda tidak menggunakan rempah-rempah sama sekali, misalnya
[]
daftar gerakan kosong, maka daftar rempah tidak akan terpengaruh.Anda bisa memasukkan bumbu apa saja ke dalam wadah bumbu saya, tetapi jika Anda menggunakannya, pastikan untuk memindahkannya.
Daftar dapat berisi apa saja. Tetapi karena ini adalah rempah-rempah yang sedang kami tangani. Lebih disukai Anda menggunakan nama rempah-rempah.
Rempah-rempah harus unik. Terlalu banyak rempah yang sama merusak kaldu ... atau bagaimanapun pepatah itu berlaku
Aturan kode-golf normal berlaku.
Contoh Oregano digunakan berulang kali.
pepper pepper pepper pepper oregano
paprika paprika paprika oregano pepper
salt salt oregano paprika paprika
cumin oregano salt salt salt
oregano cumin cumin cumin cumin
Tugas
Masukkan daftar rempah-rempah, dan daftar rempah-rempah yang digunakan, kemudian tampilkan daftar akhir.
Contoh
Memasukkan
[pepper, paprika, salt, cumin, oregano], [oregano, cumin, cumin, salt, salt, salt]
Keluaran
[salt, pepper, paprika, cumin, oregano]
Bagaimana ini terlihat
pepper pepper pepper pepper pepper pepper salt
paprika paprika paprika paprika paprika salt pepper
salt salt salt cumin salt paprika paprika
cumin oregano cumin salt cumin cumin cumin
oregano cumin oregano oregano oregano oregano oregano
Memasukkan
[pepper, paprika, salt, cumin, oregano], [salt, salt, salt, salt, salt, salt, salt, salt, salt, salt, salt, salt, oregano]
Keluaran
[salt, pepper, paprika, oregano, cumin]
Jawaban:
Sekam ,
1514 byteInput adalah daftar string (ini juga berfungsi pada jenis daftar lainnya). Cobalah online!
-1 byte terima kasih kepada H.PWiz
Penjelasan
Saya harus mengulangi
x
tanpa batas, karena kalau tidak, daftar akan kehilangan elemen terakhir ketika kita menggunakan bumbu paling atas. Ini akan cukup untuk menambahkan trailing 1, tetapi pengulangan membutuhkan lebih sedikit byte. Cara yang lebih baik adalah memutar daftar alih-alih menjatuhkan elemen pertamanya, tetapi Husk tidak memiliki bawaan untuk itu.sumber
Σm
adalahṁ
untuk satu byte.Haskell , 48 byte
foldl(?)
adalah fungsi anonim yang mengambil dua argumen daftar dan mengembalikan daftar, dengan semua elemen dari tipe yang sama (Eq
-comparable).Gunakan sebagai
foldl(?)["pepper", "paprika", "salt", "cumin", "oregano"]["oregano", "cumin", "cumin", "salt", "salt", "salt"]
.Cobalah online!
foldl(?) s m
dimulai dengan (rak rempah-rempah) daftars
dan menggabungkannya dengan setiap elemen (rempah-rempah) darim
dalam urutan, menggunakan operator?
.s?n
menggunakan bumbun
dari rak bumbus
dan mengembalikan rak bumbu yang dihasilkan.s
memiliki setidaknya dua elemen,?
periksa apakah yang kedua sama dengann
, dan jika demikian beralih dua elemen pertama. Jika tidak sama,?
pertahankan elemen pertama tetap dan berulang pada sisanya.s
memiliki paling banyak satu elemen,?
kembalikan itu tidak berubah.sumber
Chef ,
875843 byte-32 byte terima kasih kepada Jonathan Allan dengan menghapus di
the
mana saya tidak berpikir itu akan berhasil.Koki tidak memiliki tipe string, jadi bahannya bilangan bulat positif. 0 digunakan untuk memisahkan daftar awal dari bahan-bahan bekas dan untuk mengakhiri daftar bahan-bahan bekas. Lihat tautan TIO untuk contoh.
Penjelasan kodesemu:
Cobalah online!
sumber
Did you pour the contents of the mixing bowl into the baking dish before serving?
yang benar-benar terdengar seperti komentar yang akan pergi pada memasak SE dan tidak di sini: P lol (juga pertanyaan yang sangat aneh untuk memasak jika Anda bertanya kepada saya: P)JavaScript, 61 byte
Masukkan format:
Keluaran:
Tampilkan cuplikan kode
sumber
Python 2 ,
727169 byteJawaban baru, dalam semangat upaya awal saya.
Cobalah online!
Solusi lain:
Python 2 , 69 byte
Cobalah online!
sumber
print(r)
->print r
?Python 2 , 80 byte
Cobalah online!
sumber
r[i-1:i+1]
.return
denganprint
dapat menghemat byte lain .Java 8,
878676 byteMengambil dua input sebagai
ArrayList<String>
dan memodifikasi Daftar pertama alih-alih mengembalikan yang baru untuk menghemat byte.-10 byte berkat @Nevay .
Penjelasan:
Coba di sini.
sumber
a->b->b.forEach(x->{int i=a.indexOf(x);a.set(i,a.set(i>0?i-1:i,a.get(i)));});
05AB1E ,
2018 byteCobalah online!
Penjelasan
sumber
C #,
1251178179 byteCobalah. NET Fiddle
bermain golf 36 byte berkat raznagul
sumber
Array.IndexOf
. Tetapi ada beberapa cara untuk membuat jawaban menjadi lebih singkat: 1. Gunakanforeach
-loop dan bukanfor
-loop. 2. Jikac
adalahList<string>
bukanstring[]
Anda langsung dapat menggunakanc.IndexOf
. 3. Sepertic
yang diubah di tempat Anda tidak perlu mengembalikannya.05AB1E , 16 byte
Cobalah online!
sumber
Mathematica, 52 byte
tetapi ini adalah posting pertama saya di sini jadi harap berbaik hati jika salah menghitung :)
Dan sebuah contoh:
sumber
CJam , 18 byte
Cobalah online!
sumber