W ramach algorytmu kompresji standard JPEG rozwija matrycę do wektora wzdłuż przeciwbieżnych zmiennych kierunków:
Twoim zadaniem jest pobranie matrycy (niekoniecznie kwadratowej) i zwrócenie jej w rozwiniętej formie. Jako przykład:
[1 2 3 4
5 6 7 8
9 1 2 3]
powinien ustąpić
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
Zasady
Możesz założyć, że elementy macierzy są dodatnimi liczbami całkowitymi mniejszymi niż 10.
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji i wypisując wynik przez STDOUT (lub najbliższą alternatywę), wartość zwracaną funkcji lub parametr funkcji (wyjściowej).
Matryca wejściowa może być podana w dowolnej wygodnej, jednoznacznej, zagnieżdżonej liście lub formacie łańcuchowym, lub jako płaska lista wraz z oboma wymiarami macierzy. (Lub, oczywiście, jako typ matrycy, jeśli Twój język je ma.)
Wektor wyjściowy może mieć dowolny dogodny, jednoznaczny, płaski format lub ciąg znaków.
Obowiązują standardowe zasady gry w golfa .
Przypadki testowe
[[1]] => [1]
[[1 2] [3 1]] => [1 2 3 1]
[[1 2 3 1]] => [1 2 3 1]
[[1 2 3] [5 6 4] [9 7 8] [1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 3 4] [5 6 7 8] [9 1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 6 3 1 2] [5 9 4 7 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 5 9 6 3 4 7 1 2 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
Powiązane wyzwania
- Zrekonstruuj zygzakowatą matrycę (nieco trudniejszą odwrotną transformację)
- Obróć anty-przekątne

