Versión más corta de Skyscrapers Challenge
Tarea
Dada una variedad de alturas de edificios y un número entero positivo k
, encuentre todas las permutaciones (sin duplicados) de las alturas de modo que se vean exactamente los k
edificios.
Cualquier edificio ocultará todos los edificios más cortos o de igual altura detrás de él.
Cualquier formato para entrada y salida es válido.
La matriz de entrada nunca estará vacía.
En caso de que no sea posible ver exactamente tantos edificios, envíe cualquier cosa que no pueda ser una respuesta pero no un error.
Ejemplos:
(La longitud de salida se muestra para salidas muy largas, pero su salida debe ser todas las permutaciones posibles)
input:[1,2,3,4,5],2
output: 50
input:[5,5,5,5,5,5,5,5],2
output: []
input:[1,2,2],2
output:[(1,2,2)]
Seeing from the left, exactly 2 buildings are visible.
input:[1,7,4],2
output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)]
input:[1,2,3,4,5,6,7,8,9],4
output:67284
input:[34,55,11,22],1
output:[(55, 34, 11, 22), (55, 22, 34, 11), (55, 34, 22, 11), (55, 11, 34, 22), (55, 22, 11, 34), (55, 11, 22, 34)]
input:[3,4,1,2,3],2
output:31
Este es el código de golf, por lo que el código más corto gana
Opcional: si es posible, ¿puede agregar algo como if length is greater than 20: print length else print answer
? En el pie de página, no en el código.
[1,2,3,4,5],5 -> [(1,2,3,4,5)]
. Ninguno de los casos de prueba actuales garantiza que las respuestas puedan soportar mostrar todos los edificios (aunque no sé si alguno realmente tiene un problema con eso).