Anda memiliki banyak kotak yang berat dan Anda ingin menumpuknya dalam jumlah tumpukan paling sedikit. Masalahnya adalah Anda tidak bisa menumpuk lebih banyak kotak pada kotak daripada yang bisa didukung, jadi kotak yang lebih berat harus ada di bagian bawah tumpukan.
Tantangan
Input : Daftar bobot kotak, dalam satuan kg.
Keluaran : Daftar daftar yang menggambarkan tumpukan kotak. Ini harus menggunakan tumpukan paling sedikit untuk input. Untuk menjadi tumpukan yang valid, berat masing-masing kotak di tumpukan harus lebih besar dari atau sama dengan jumlah berat semua kotak di atasnya.
Contoh tumpukan yang valid
(Di urutan bawah ke atas)
- [3]
- [1, 1]
- [3, 2, 1]
- [4, 2, 1, 1]
- [27, 17, 6, 3, 1]
- [33, 32, 1]
- [999, 888, 99, 11, 1]
Contoh tumpukan tidak valid
(Agar dari bawah ke atas)
- [1, 2]
- [3, 3, 3]
- [5, 5, 1]
- [999, 888, 777]
- [4, 3, 2]
- [4321, 3000, 1234, 321]
Contoh Kasus Uji
1
IN: [1, 2, 3, 4, 5, 6, 9, 12]
OUT: [[12, 6, 3, 2, 1], [9, 5, 4]]
2
IN: [87, 432, 9999, 1234, 3030]
OUT: [[9999, 3030, 1234, 432, 87]]
3
IN: [1, 5, 3, 1, 4, 2, 1, 6, 1, 7, 2, 3]
OUT: [[6, 3, 2, 1], [7, 4, 2, 1], [5, 3, 1, 1]]
4
IN: [8, 5, 8, 8, 1, 2]
OUT: [[8, 8], [8, 5, 2, 1]]
Aturan dan Asumsi
- Aturan I / O standar dan celah terlarang berlaku
- Gunakan format apa pun yang nyaman untuk I / O
- Tumpukan dapat digambarkan dari atas ke bawah atau dari bawah ke atas, selama Anda konsisten.
- Urutan tumpukan (bukan kotak di dalam tumpukan itu) tidak masalah.
- Anda juga dapat mengambil kotak input sebagai daftar yang dipilih. Urutan tidak terlalu penting untuk input, asalkan masalah umum tidak diselesaikan dengan penyortiran itu sendiri.
- Jika ada lebih dari satu konfigurasi tumpukan yang optimal, Anda dapat mengeluarkan salah satunya
- Anda dapat berasumsi bahwa setidaknya ada satu kotak dan semua kotak memiliki berat setidaknya 1 kg
- Anda harus mendukung bobot hingga 9.999 kg, minimal.
- Anda harus mendukung hingga 9.999 kotak total, minimal.
- Kotak dengan berat yang sama tidak dapat dibedakan, jadi tidak perlu membubuhi keterangan kotak mana yang digunakan.
Selamat bermain golf! Semoga berhasil!
code-golf
optimization
Beefster
sumber
sumber
[8, 8, 8, 5, 1]
[[8, 8], [8, 5, 1]]
[8, 5, 8, 8, 1, 2]
->[[8, 8], [8, 5, 2, 1]]
Jawaban:
Jelly , 19 byte
Cobalah online!
Jelas -3 terima kasih kepada Nick Kennedy ...
Atas ke bawah.
Penjelasan:
sumber
JavaScript (Node.js),
139 122116 byteMengharapkan input diurutkan dalam urutan menaik.
Cobalah online!
Berkomentar
sumber
Python 3.8 (pra-rilis) , 178 byte
Cobalah online!
Sekarang bekerja pada semua input yang mungkin. (Ini habis pada TIO dengan lebih dari sepuluh atau lebih kotak, tetapi menghitung jawaban yang benar)
sumber
list(reversed(sorted(a)))
dapat ditulissorted(a)[::-1]
untuk tujuan golf.sorted(a, reverse=True)
saja.