Wyzwanie
n
Jako dane wejściowe otrzymasz dodatnią liczbę całkowitą . Dane wyjściowe powinny być jak piramidy zbudowane na zasadach określonych poniżej:
- Każda liczba całkowita „spada” od tego samego początkowego punktu początkowego, jak piasek opadający w stożkowy kształt.
- Liczby większe niż liczba bezpośrednio pod nim, gdy uderzy w stos piasku, spadną w prawo, jeśli to możliwe.
- Liczby mniejsze niż liczba bezpośrednio pod nim, gdy uderzy w stos piasku, spadnie w lewo, jeśli to możliwe.
- Liczby równe liczbie znajdującej się bezpośrednio pod nim, gdy uderzy w stos piasku, pozostaną na swoim miejscu.
- Liczby mogą spaść w lewo / w prawo, jeśli mogą się odpowiednio przesunąć w dół i w lewo / w prawo. Oznacza to, że jeśli liczba jest już poniżej i po lewej / prawej stronie, w zależności od kierunku, aktualnie spadająca liczba nie przesuwa się.
- Liczba będzie nadal spadać po kupce piasku, dopóki nie będzie można przesunąć jej do następnej pozycji lub uderzyć o podłogę.
Notatki
Wstępna kontrola porównania ma zastosowanie tylko do pierwszej napotkanej liczby całkowitej, a nie do każdego kolejnego spotkania, gdy spada ona po stoku piasku.
Końcowe spacje są w porządku, ale końcowe nowe wiersze nie.
Brak spacji wiodących lub nowych linii, z wyjątkiem przypadków, gdy jest to konieczne do zachowania struktury stosu piasku.
Możesz napisać pełny program lub funkcję.
Możesz założyć, że dane wejściowe będą zawierać tylko niektóre kombinacje [0-9]
.
To jest golf-golf , najkrótszy kod w bajtach zostanie oznaczony jako zwycięzca do Ides marca
Przykłady
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
czy to pomyłka, że trzeci4
spadnie do pierwszego4
?Odpowiedzi:
JavaScript (ES6),
260208 bajtówEdycja: Zapisano 25 bajtów, wiedząc, że pierwszy znak nie jest przypadkiem specjalnym. Zaoszczędzono 15 bajtów, używając tablicy ciągów zamiast tablicy tablic znaków. Zapisano 12 bajtów w różnych poprawkach, w tym za pomocą literału
\n
(nie pokazano). To sprawia, że całość jest o 20% krótsza! Chciałem pozbyćreverse
, ale to kosztuje więcej niż ja wtedy Zapisz zastępującmap
zreplace
.Nie golfowany:
źródło