Opis
Twoim zadaniem jest wygenerowanie „mapy głębokości” - to znaczy mapy wysokości obiektu, ale niewidocznego z góry, ale z przodu.
Na przykład rozważmy następujący obiekt pokazany na obrazku. Mapa wysokości pokazana jest po lewej stronie. Odpowiednia mapa głębokości wyglądałaby (patrząc od pozycji przy strzale):
010
211 <- Depthmap
322
Jeśli stoisz przy strzale, są 3 kostki za sobą w dolnym lewym punkcie, 2 za sobą w środkowym lewym punkcie, 0 w lewym górnym rogu itp.
Wkład
Dane wejściowe to dwuwymiarowa tablica o dowolnych rozmiarach (niekoniecznie kwadratowa).
Wydajność
Dane wyjściowe to kolejna dwuwymiarowa tablica reprezentująca mapę głębokości. Jak można wywnioskować, jego rozmiary to (height x width)
. Na zdjęciu byłoby (3 x 3)
. Zauważ, że jeśli najwyższa wieża sześcianów wynosiła 5, mapa głębokości byłaby tablicą (5 x 3)
.
Warunki wygranej
Najkrótszy kod wygrywa.
Niedozwolone
Wszystkie języki dozwolone, bez wyraźnych ograniczeń. (Nie wiem, co możesz wymyślić, ale graj proszę, proszę.)
Przykłady
Input: Ouput:
5321 0001
1456 1012
2105 1112
1212
2222
3323
Input: Output:
22 01
13 12
00 22
Input: Output: (of the sample image)
232 010
210 211
101 322
Odpowiedzi:
Golfscript, 42 znaki
wyniki
źródło
[]*
. Niezła sztuczka.Ruby 1.9, 102 znaki
Przechodzi wszystkie przypadki testowe.
źródło
Windows PowerShell, 108
111114Przechodzi wszystkie przypadki testowe.
źródło
Haskell, 118 znaków
źródło
Scala 236 znaków
Z pewnym formatowaniem:
Jestem pewien, że lepsze narzędzie do rozumienia oznaczałoby, że mogłem wyciąć z tego kilka postaci.
źródło
JavaScript,
235208195 bajtówDla przypomnienia, to jest kod, który wymyśliłem przed opublikowaniem pytania. (Teraz mniejsze)
źródło
Wersja Haskell (teraz zoptymalizowana)
Wersja bez golfa
źródło
Python, 117 znaków
Podobne do rozwiązania Ruby firmy Ventero.
źródło
APL (Dyalog Extended) , 14 bajtów
Wypróbuj online!
źródło
Clojure, 102 bajty
źródło
Japt , 12 bajtów
Wypróbuj wszystkie przypadki testowe
Wyprowadzenie wierszy w odwrotnej kolejności pozwoliłoby zaoszczędzić 2 bajty , przyjęcie danych w kolejności głównej kolumny pozwoliłoby zaoszczędzić 1 bajt , a wykonanie obu pozwoliłoby (naturalnie) zaoszczędzić 3 bajty
Wyjaśnienie:
źródło