Desafío
Se le dará un entero positivo n
como entrada. La salida debe ser una pila de arena tipo pirámide construida sobre las reglas especificadas a continuación:
- Cada número entero "cae" hacia abajo desde el mismo punto inicial, como arena que cae en forma de conal.
- Los números mayores que el número directamente debajo de él cuando golpea la pila de arena caerán a la derecha, si es posible.
- Los números menores que el número directamente debajo de él cuando golpea la pila de arena caerán a la izquierda, si es posible.
- Los números iguales al número directamente debajo de él cuando golpea la pila de arena permanecerán en su lugar.
- Los números pueden caer hacia la izquierda / derecha si pueden moverse hacia abajo y hacia la izquierda / derecha respectivamente. Es decir, si ya hay un número debajo ya la izquierda / derecha, dependiendo de la dirección, el número que cae actualmente no se mueve.
- Un número continuará cayendo por la pila de arena hasta que no pueda moverse a su siguiente posición o golpee el piso.
Notas
La verificación de comparación inicial solo se aplica al primer entero encontrado, no para cada encuentro sucesivo a medida que cae por la pila de arena.
Los espacios finales están bien, pero las nuevas líneas finales no.
Sin espacios iniciales o nuevas líneas, excepto donde sea necesario para preservar la estructura de la pila de arena.
Puede escribir un programa o función completa.
Puede suponer que la entrada solo contendrá alguna combinación [0-9]
.
Este es el código de golf , el código más corto en bytes será marcado ganador por los idus de marzo
Ejemplos
1
1
12345
35
124
54321
13
245
555444333222111
2
2
2
135
1345
13445
111222333444555
4
4
4
135
1235
12235
7313623030872935273465247457435345345350
3
3
3
3
34
355
3644
239475
201277445
020373685575
555444333222111
¿Es un error que el tercero4
caiga a la izquierda del primero4
?Respuestas:
Javascript (ES6),
260208 bytesEditar: ahorró 25 bytes al darse cuenta de que el primer carácter no es un caso especial. Se guardaron 15 bytes utilizando una matriz de cadenas en lugar de una matriz de matrices de caracteres. Se guardaron 12 bytes en arreglos diversos, incluido el uso de un literal
\n
(no mostrado). ¡Eso hace que todo este 20% sea más corto! Quería deshacerme dereverse
eso, pero eso cuesta más de lo que puedo ahorrar al reemplazarlomap
conreplace
.Sin golf:
fuente