Input
Daftar (array) angka, atau string numerik jika itu membuatnya lebih mudah. Anda dapat mengasumsikan akan selalu ada setidaknya dua elemen dalam daftar dan setiap elemen akan menjadi bilangan alami (bilangan bulat lebih besar dari nol).
Keluaran
Satu angka, atau sekali lagi, string numerik.
Masalah
Idenya adalah untuk mengurangi daftar angka dengan menghapus digit terakhir dari angka terbesar pada tahap daftar saat ini, akhirnya berakhir dengan satu nomor (hanya satu nomor yang harus dikembalikan, bahkan jika ada beberapa contoh)
Contoh
[123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78
[123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46
[123,343,121,76,46,78] -- Repeat until left with one number
[123,34,121,76,46,78]
[12,34,121,76,46,78]
[12,34,12,76,46,78]
[12,34,12,76,46,7]
[12,34,12,7,46,7]
[12,34,12,7,4,7]
[12,3,12,7,4,7]
[1,3,1,7,4,7] -- If there are multiple max numbers, you **must** remove the last digit from all of them
[1,3,1,4]
[1,3,1]
[1,1] -- You have your answer when there is one number, or multiple numbers that are equal
1 -- Result
Celah
Kendala lain
Program Anda harus bekerja untuk daftar nomor acak apa pun (tentu saja dengan alasan)
Uji Kasus
[24,72,4]
[24,7,4]
[2,7,4]
[2,4]
[2]
2
[14, 7]
[1, 7]
[1]
1
[1278,232,98273,2334]
[1278,232,9827,2334]
[1278,232,982,2334]
[1278,232,982,233]
[127,232,982,233]
[127,232,98,233]
[127,232,98,23]
[127,23,98,23]
[12,23,98,23]
[12,23,9,23]
[12,2,9,2]
[1,2,9,2]
[1,2,2]
[1]
1
Mencetak gol
Ini kode-golf , jadi jawaban tersingkat di setiap bahasa menang!
[12, 123, 124]
yaitu12
, yang membuat setiap satu posted jawaban yang salah .Jawaban:
Haskell , 16 byte
Cobalah online!
sumber
Python 2 , 24 byte
-4 byte terima kasih kepada notjagan.
Cobalah online!
sumber
min(zip(*l)[0])
.Python 3 ,
24, 21, 18 byteCobalah online!
TigaEnam byte disimpan berkat @totallyhuman!sumber
Mathematica, 29 byte
sumber
Japt ,
865 byte-1 byte terima kasih kepada @Shaggy
Mengambil input sebagai larik string numerik. Cobalah online!
Penjelasan
sumber
n v g
juga akan bekerja selama 5 byte. Selamat datang di Japt, omong-omong.05AB1E , 3 byte
Cobalah online!
sumber
[12,23,12]
.3,2,2,2,1
menghasilkan 1 seperti yang diharapkan.PHP , 45 byte
Cobalah online!
sumber
[12,23,12]
.V ,
11, 5 byteCobalah online!
Saya membuat waaay ini lebih rumit dari yang sebenarnya. Jawaban ini hanya mengurutkan setiap baris dengan nilai ASCII, dan kemudian mengembalikan karakter pertama. Karena ini adalah jawaban yang baik atau membosankan, berikut ini adalah jawaban yang lebih menarik yang benar-benar mengimplementasikan algoritma yang dijelaskan sebelumnya:
V , 11 byte
Cobalah online!
sumber
Jelly ,
32 byteProgram lengkap yang mengambil daftar daftar karakter (string) dan mencetak hasilnya.
Cobalah online!
Bagaimana?
Kami hanya perlu mengembalikan digit terkemuka terkecil ...
sumber
JavaScript (ES6), 17 byte
Mengambil input sebagai array string.
Cobalah
Masukkan daftar angka yang dipisahkan koma.
sumber
,,,, 3 byte
Penjelasan
sumber
Braingolf , 17 byte
Cobalah online!
Penjelasan
Dengan kata lain, itu membangun tumpukan yang hanya terdiri dari digit pertama dari setiap item, kemudian menghasilkan yang terendah.
Tantangan ini memberi saya banyak ide berguna untuk ditambahkan pada Braingolf, dan sekarang berkat penambahan loop foreach "khusus", Braingolf dapat melakukannya dalam 5 byte:
Braingolf , 5 byte [tidak bersaing]
Penjelasan
Cobalah online!
Saya biasanya menentang menambahkan builtin hanya untuk menyelesaikan satu tantangan, tetapi saya dapat melihat sejumlah besar kegunaan untuk
(...)
loop foreach baru , jadi saya tidak benar-benar menganggapnya menambahkan fitur hanya untuk tantangan ini.sumber
[12,23,12]
. Output yang diharapkan adalah2
, Anda kembali1
.1
:[12,23,12] > [12,2,12] > [1,2,1] > [1,1]
Funky , 18 byte
Mengambil input sebagai daftar string.
Cobalah online!
sumber
Pip , 5 byte
Mengambil daftar nomor input sebagai argumen baris perintah.
Cobalah online!
Bergantian:
Cobalah online!
Penjelasan
Di kedua program,
g
adalah daftar argumen baris perintah.SS
mengurutkan menggunakan perbandingan string, sehingga menempatkan angka dengan digit pertama terkecil terlebih dahulu, terlepas dari besarnya mereka. Unary@
memberikan elemen pertama dari daftar atau skalar. Kami menerapkannya dua kali untuk mendapatkan digit pertama dari angka pertama setelah pengurutan.Bergantian:
Z
adalah zip; versi unary dapat digunakan untuk mengubah daftar. Elemen pertama dari daftar yang dialihkan adalah daftar digit pertama dari semua angka.@
mendapatkan daftar digit itu;MN
membutuhkan minimum.sumber
PHP, 27 byte
(Wow, benar-benar salah paham pertanyaannya. Ini tidak berhasil. Akan diedit nanti.)
sumber
Pyth ,
97 byteCobalah online!
Penjelasan
Ini pada dasarnya mengembalikan digit terdepan terkecil.
sumber
Python 3 , 33 byte
Cobalah online!
@DJMcMayhem dan @totallyhuman memiliki solusi yang lebih baik tetapi saya menganggap input numerik bukan string.
sumber
Pyth, 3 byte
Input adalah daftar representasi string angka.
Cobalah secara Online
Penjelasan:
sumber