Tengo un montón de tablas que necesito apilar en el menor espacio posible. Desafortunadamente, los tableros se caen si los apilo a más de 10 de altura. Necesito un programa que me diga cómo apilar las tablas para ocupar el menor espacio horizontal posible, sin apilar tablas de más de diez de altura, o tener tablas colgando sobre el espacio vacío.
Tu tarea:
Escriba un programa o función, que cuando se le da una matriz que contiene las longitudes de los tableros, genera como ASCII la forma de apilar los tableros para conservar tanto espacio horizontal como sea posible, sin apilar los tableros de más de 10 de altura o tener cualquier parte de cualquier Junta colgando sobre el espacio vacío. Su arte ASCII debe mostrar la configuración de los tableros, cada uno con un carácter diferente. Habrá un máximo de 20 tableros. Por ejemplo, si la entrada fue [2,2,4,2,2,4,4,4], una salida posible es:
dhh
dgg
dff
dee
abc
abc
abc
abc
que es una configuración estable (aunque esto se caería en ~ 0.1 segundos en la vida real).
Entrada:
Una matriz que contiene hasta 20 enteros, que muestra las longitudes de los tableros.
Salida:
Arte ASCII que muestra las configuraciones de los tableros, como se describe anteriormente.
Casos de prueba:
Tenga en cuenta que puede haber otras soluciones para los casos de prueba, y los caracteres que se muestran para cada placa pueden ser diferentes.
[12,2,2,2,3,4,4,8,8] -> ffgghhiii
ddddeeeeeeee
bbbbbbbbcccc
aaaaaaaaaaaa
[4,4,4,4,4,4,4,4,4,4,4,4] -> llll
aaaa
cfghk
cfghk
cfghk
cfghk
debij
debij
debij
debij
[4,4,4,4,4,4,3,3,3,2,2,2,1] -> jjml
iiil
hhhk
gggk
ffff
eeee
dddd
cccc
bbbb
aaaa
Puntuación:
Este es el código de golf , el puntaje más bajo en bytes gana