Tienes un montón de cajas pesadas y quieres apilarlas en la menor cantidad de pilas posibles. El problema es que no puede apilar más cajas en una caja de las que puede soportar, por lo que las cajas más pesadas deben ir en la parte inferior de una pila.
El reto
Entrada : Una lista de pesos de cajas, en kg enteros.
Salida : una lista de listas que describen las pilas de cajas. Esto debe usar la menor cantidad de pilas posibles para la entrada. Para ser una pila válida, el peso de cada caja en la pila debe ser mayor o igual a la suma del peso de todas las cajas que se encuentran arriba.
Ejemplos de pilas válidas
(En orden de abajo hacia arriba)
- [3]
- [1, 1]
- [3, 2, 1]
- [4, 2, 1, 1]
- [27, 17, 6, 3, 1]
- [33, 32, 1]
- [999, 888, 99, 11, 1]
Ejemplos de pilas inválidas
(En orden de abajo hacia arriba)
- [1, 2]
- [3, 3, 3]
- [5, 5, 1]
- [999, 888, 777]
- [4, 3, 2]
- [4321, 3000, 1234, 321]
Ejemplos de casos de prueba
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 4
IN: [8, 5, 8, 8, 1, 2]
OUT: [[8, 8], [8, 5, 2, 1]]
Reglas y supuestos
- Se aplican las reglas estándar de E / S y las lagunas prohibidas
- Use cualquier formato conveniente para E / S
- Las pilas pueden describirse de arriba a abajo o de abajo hacia arriba, siempre y cuando sea consistente.
- El orden de las pilas (en lugar de las cajas dentro de esas pilas) no importa.
- También puede tomar cuadros de entrada como una lista clasificada previamente. El orden no es particularmente importante para la entrada, siempre que el problema general no se resuelva con la clasificación en sí.
- Si hay más de una configuración óptima de pilas, puede generar cualquiera de ellas
- Puede suponer que hay al menos una caja y que todas las cajas pesan al menos 1 kg
- Debe soportar pesos de hasta 9.999 kg, como mínimo.
- Debe admitir hasta 9,999 cajas en total, como mínimo.
- Las cajas con el mismo peso no se pueden distinguir, por lo que no es necesario anotar en qué caja se utilizó.
¡Feliz golf! ¡Buena suerte!
code-golf
optimization
Carne de res
fuente
fuente
[8, 8, 8, 5, 1]
->[[8, 8], [8, 5, 1]]
[8, 5, 8, 8, 1, 2]
->[[8, 8], [8, 5, 2, 1]]
Respuestas:
Jalea , 19 bytes
Pruébalo en línea!
Obvio -3 gracias a Nick Kennedy ...
De arriba hacia abajo.
Explicación:
fuente
JavaScript (Node.js),
139122116bytesEspera la entrada ordenada en orden ascendente.
Pruébalo en línea!
Comentado
fuente
Python 3.8 (prelanzamiento) , 178 bytes
Pruébalo en línea!
Ahora funciona en todas las entradas posibles. (Se agota el tiempo de espera en TIO con más de diez cuadros, pero calcula una respuesta correcta)
fuente
list(reversed(sorted(a)))
Se puede escribirsorted(a)[::-1]
para golf.sorted(a, reverse=True)
lugar.