Pengantar:
Di Belanda, kata-kata memimpin dan menderita, masing-masing 'leiden' dan 'lijden', diucapkan dengan cara yang sama. Satu ditulis dengan "ei pendek", dan satu dengan "ij panjang" , seperti yang akan dikatakan oleh orang Belanda, tetapi 'ei' dan 'ij' dilafalkan [ɛi].
Tantangan:
Diberikan daftar angka, tentukan yang mana (jika ada) yang memimpin, dan mana (jika ada) yang menderita.
Nomor utama adalah:
- Angka positif
- Setidaknya memiliki empat digit
- Berada dalam 50% tertinggi dari daftar dalam hal nilai
- Masih di 50% tertinggi dari daftar dalam hal nilai, jika digit ke-3 diganti dengan digit ke-2, dan posisi ke-2 digit-nya diisi dengan angka 0 (yaitu
1234
akan menjadi1024
)
Jumlah yang menderita adalah:
- Angka negatif
- Setidaknya memiliki empat digit
- Berada di 50% terendah dari daftar dalam hal nilai
- Masih di 50% terendah dari daftar dalam hal nilai, jika digit ke-3 diganti dengan digit ke-2, dan posisi ke-2 digit diisi dengan angka 0 (artinya
-4321
akan menjadi-4031
)
Contoh:
Input: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Output: memimpin [5827, 281993, 37819, 37298]
:; penderitaan:[-32781, -2739]
Penjelasan:
Jika kita mengurutkan dan membagi angka menjadi dua, itu adalah:
[[-32781, -2739, -389, 0, 3798], [3854, 3918, 5827, 37819, 281993]]
Hanya ada dua angka negatif dengan setidaknya empat digit: [-32781, -2739]
. Mengubah digit seperti dijelaskan di atas tidak akan mengubah posisi mereka, sehingga keduanya adalah angka penderitaan.
Untuk membagi dua terbesar, semua angka memiliki setidaknya empat digit: [3854, 3918, 5827, 37819, 281993]
. Mengubah digit seperti yang dijelaskan di atas akan mengubah beberapa posisi mereka. The 3854
akan menjadi 3084
, meletakkannya di bawah 3798
yang di terendah 50%, sehingga 3854
bukan nomor terkemuka di daftar ini. Hal yang sama berlaku untuk 3918
yang akan menjadi 3098
, juga meletakkannya di bawah 3798
. Tiga angka lainnya sedang memimpin, seperti 5827
yang akan terjadi 5087
, yang masih di atas 3798
dan pada kenyataannya masih pada indeks yang sama dari daftar yang diurutkan. Begitu[5827, 37819, 281993]
adalah angka utama.
Aturan tantangan:
- I / O fleksibel. Input-list dapat berupa daftar bilangan bulat, daftar digit 2D, daftar string, dll. Output dapat berupa daftar daftar bilangan bulat, dua daftar terpisah, dua string, keduanya dicetak ke STDOUT, dll.
- Saat menentukan apakah suatu angka memimpin / menderita, kita hanya melihat posisi barunya dari angka itu jika hanya digitnya yang diubah, bukan setelah kita menerapkan modifikasi pada semua angka.
- Kami menampilkan angka asli, bukan yang dimodifikasi.
- Angka-angka dalam daftar keluaran terkemuka dan menderita bisa dalam urutan apa pun.
- Jika ukuran daftar input ganjil, angka di tengah tidak termasuk setengah.
- Angka dijamin tetap unik setelah dimodifikasi. Jadi daftar seperti
[0, 1, 1045, 1485]
bukan daftar input yang valid, karena1485
akan sama dengan1045
setelah modifikasi itu.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda dengan aturan I / O default , sehingga Anda diizinkan untuk menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
Kasus uji:
Input: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Output: leading: [5827, 281993, 37819, 37298]; suffering: [-32781, -2739]
Input: [-100, 472, 413, -1782]
Output: leading: []; suffering: [-1782]
Input: [-1234, -1235, -1236, 1234, 1235, 1236]
Output: leading: [1234, 1235, 1236]; suffering: [-1234, -1235, -1236]
Input: [-1919, -1819, -1719, -1619, -1500, -1444, 40, 4444, 18]
Output: leading: [4444]; suffering: []
Input: [-1004, -1111, -1000]
Output: leading: []; suffering: [-1111]
Input: [-1004, -1111, -1010, 1000]
Output: leading: [1000]; suffering: [-1111]
Input: [1000, -1000]
Output: leading: [1000]; suffering: [-1000]
Input: [1000, -5000, 4000]
Output: leading: [4000]; suffering: [-5000]
sumber
Jawaban:
05AB1E ,
2724232221 byteCobalah online!
sumber
©
dan®Åm
bukannya AndaÅmUy
danX
untuk menyimpan byte, tetapi Anda sekarang menghapusUX
juga dengan melakukanÅm ... ‹y
setelah peta, jadi ini adalah optimasi yang sama. Saya sebenarnya menyukai Anda lebih baik, karena tidak menggunakan variabel yang tidak perlu dalam kasus itu. :)0šāǝ
! : D Tidak akan pernah memikirkan itu!D¦0š2Lǝ
, yang merupakan byte-count yang sama denganD1è0šāǝ
.Python 2 ,
119118111107 byteCobalah online!
Output sebagai
suffering, leading
.sumber
Jelly , 30 byte
Cobalah online!
Mengingat panjangnya jawaban 05AB1E Grimy , saya yakin ini bisa bermain golf lebih baik, tapi ini dia.
sumber
JavaScript (Node.js) , 162 byte
Cobalah online!
Fungsi anonim yang mengambil array angka sebagai input dan output array 2-elemen sebagai output. Elemen pertama dalam array output adalah array nomor terdepan, elemen kedua dalam array output adalah array nomor-nomor berikut.
sumber