Vous avez un tas de boîtes lourdes et vous voulez les empiler dans le moins de piles possible. Le problème est que vous ne pouvez pas empiler plus de boîtes sur une boîte qu'il ne peut en supporter, donc les boîtes plus lourdes doivent aller au bas d'une pile.
Le défi
Entrée : une liste des poids des boîtes, en kg entiers.
Sortie : une liste de listes décrivant les piles de boîtes. Cela doit utiliser le moins de piles possible pour l'entrée. Pour être une pile valide, le poids de chaque boîte de la pile doit être supérieur ou égal à la somme du poids de toutes les boîtes au-dessus.
Exemples de piles valides
(De bas en haut)
- [3]
- [1, 1]
- [3, 2, 1]
- [4, 2, 1, 1]
- [27, 17, 6, 3, 1]
- [33, 32, 1]
- [999, 888, 99, 11, 1]
Exemples de piles non valides
(Dans l'ordre de bas en haut)
- [1, 2]
- [3, 3, 3]
- [5, 5, 1]
- [999, 888, 777]
- [4, 3, 2]
- [4321, 3000, 1234, 321]
Exemples de cas de test
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]]
Règles et hypothèses
- Les règles d'E / S standard et les failles interdites s'appliquent
- Utilisez n'importe quel format pratique pour les E / S
- Les piles peuvent être décrites de haut en bas ou de bas en haut, tant que vous êtes cohérent.
- L'ordre des piles (plutôt que des cases dans ces piles) n'a pas d'importance.
- Vous pouvez également prendre les zones de saisie comme une liste pré-triée. L'ordre n'est pas particulièrement important pour l'entrée, tant que le problème général n'est pas résolu par le tri lui-même.
- S'il y a plus d'une configuration optimale de piles, vous pouvez sortir n'importe laquelle d'entre elles
- Vous pouvez supposer qu'il y a au moins une boîte et que toutes les boîtes pèsent au moins 1 kg
- Vous devez supporter des poids jusqu'à 9 999 kg, au minimum.
- Vous devez prendre en charge jusqu'à 9 999 boîtes au total, au minimum.
- Les boîtes de même poids sont indiscernables, il n'est donc pas nécessaire d'annoter quelle boîte a été utilisée à quel endroit.
Bon golf! Bonne chance!
code-golf
optimization
Beefster
la source
la source
[8, 8, 8, 5, 1]
->[[8, 8], [8, 5, 1]]
[8, 5, 8, 8, 1, 2]
->[[8, 8], [8, 5, 2, 1]]
Réponses:
Gelée , 19 octets
Essayez-le en ligne!
Évident -3 grâce à Nick Kennedy ...
De haut en bas.
Explication:
la source
JavaScript (Node.js),
139 122116 octetsAttend l'entrée triée par ordre croissant.
Essayez-le en ligne!
Commenté
la source
Python 3.8 (pré-version) , 178 octets
Essayez-le en ligne!
Fonctionne maintenant sur toutes les entrées possibles. (Il expire sur TIO avec plus d'une dizaine de cases, mais il calcule une réponse correcte)
la source
list(reversed(sorted(a)))
peut être écrit commesorted(a)[::-1]
à des fins de golf.sorted(a, reverse=True)
place.