Описание
Ваша задача - вывести «карту глубины», то есть карту высот объекта, который виден не сверху, а спереди.
Например, рассмотрим следующий объект, как показано на рисунке. Карта высот показана слева. Соответствующая карта глубины будет (как видно из стоящей у стрелки):
010
211 <- Depthmap
322
Если вы стоите у стрелки, в нижней левой точке есть 3 кубика друг за другом, 2 в средней левой точке, 2 друг за другом, 0 в левой верхней точке и т. Д.
вход
Ввод - это двумерный массив любых размеров (не обязательно квадратный).
Выход
Выход - еще один двумерный массив, который представляет карту глубины. Как вы можете сделать вывод, его размеры (height x width)
. На картинке это было бы (3 x 3)
. Обратите внимание, что если бы самая высокая башня кубов была 5, карта глубины была бы массивом (5 x 3)
.
Выигрышное условие
Самый короткий код выигрывает.
Disallowed
Все языки допускаются, без явных ограничений. (Я не знаю, что вы можете придумать, но играйте честно, пожалуйста.)
Примеры
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
Ответы:
Golfscript, 42 символа
полученные результаты
источник
[]*
. Хороший трюк.Ruby 1.9, 102 символа
Проходит все тестовые случаи.
источник
Windows PowerShell, 108
111114Проходит все тестовые случаи.
источник
Хаскель, 118 персонажей
источник
Scala 236 символов
С некоторым форматированием:
Я уверен, что лучшее средство для понимания означало бы, что я мог бы вырезать некоторые символы из этого.
источник
JavaScript,
235208195 байтПросто для протокола, это код, который я составил до публикации вопроса. (Смалленда сейчас)
источник
Версия на Haskell (теперь оптимизирована)
Неуправляемая версия
источник
Питон, 117 символов
Аналогично решению Ventero для Ruby.
источник
APL (Dyalog Extended) , 14 байтов
Попробуйте онлайн!
источник
Clojure, 102 байта
источник
Japt , 12 байт
Попробуйте все тестовые случаи
Вывод строк в обратном порядке позволит сэкономить 2 байта , при вводе в основном порядке столбцов будет сохранен 1 байт , а при выполнении обоих (естественно) - 3 байта
Объяснение:
источник