Вот относительно простой вызов для вас:
Дан список положительных целых чисел:
Выровняйте их в сетке и суммируйте каждый столбец. Например, если вход был
[123, 7, 49, 681]
, сетка будет выглядеть так:1 2 3 7 4 9 6 8 1
И сумма каждого столбца будет
[18, 19, 4]
:1 2 3 7 4 9 6 8 1 -------- 18 19 4
Найдите максимум этих сумм, который в этом случае будет 19, а затем
Выведите каждую цифру с тем же индексом, что и этот максимальный столбец. В этом случае это было бы
2 9 8
Вам не нужно выводить эти числа в каком-либо определенном порядке. Обратите внимание, что есть только три выхода, хотя у нас было 4 входа. В случае ничьей выберите самый ранний индекс. Например, если вход был
[25, 223, 302]
, ваша сетка:2 5 2 2 3 3 0 2 ------- 7 7 5
Вы должны вывести
2 2 3
Вы можете распечатать эти числа в любом формате, который вам нравится. Формат списка, разделенный новой строкой, разделенный пробелами и т. Д. Вы не можете воспринимать ввод как двумерный массив цифр, например
[[1, 2, 3],
[7],
[4, 9],
[6, 8, 1]
Но кроме этого, вы можете принять ввод как список строк, список цифр или любой другой разумный формат.
Вы также можете предположить, что все входные данные будут действительными и содержат как минимум два числа.
Как обычно, самый короткий ответ в байтах побеждает!
Тест IO:
#Input #Output
[1, 11, 111, 1111] --> [1, 1, 1, 1]
[1, 12, 123] --> [2, 2]
[987654321, 111] --> [9, 1]
[111, 123456789] --> [9]
[4, 8, 15, 16, 23, 42] --> [4, 8, 1, 1, 2, 4]
[4, 8, 12, 26, 27, 38] --> [2, 6, 7, 8]
[24, 53] --> [2, 5]
[12, 304, 506] --> [4, 6]
[30, 285, 121] --> [0, 8, 2]
0
. Ноль обычно не считается положительным на английском языке.Ответы:
Haskell, 63 байта
Пример использования:
argmax sum.transpose.map(map(read.pure).show) $ [12,304,506]
->[4,6]
.Как это устроено:
источник
Желе , 6 байт
Попробуйте онлайн! , Это относительно простая реализация вопроса.
источник
Рубин,
10097 байтисточник
eval e*?+
отлично! Также вы можете просто сделать$<.map
; нет необходимости разбивать его на массивы.Mathematica 82 байта
Это дополняет цифры каждого числа крестиками справа, транспонирует матрицу, удаляет фиктивные х, упорядочивает по сумме цифр и принимает наибольшее.
Должен быть какой-то способ использовать форму superscript-T
Transpose
для сохранения нескольких байтов.источник
Perl,
4948 байтовВключает +1 для
-p
Запускается с вводом на STDIN, печатает на STDOUT номера столбцов с префиксом
+
lcolumn.pl
:источник
Javascript (ES6),
108103100 байтЭто немного многословно и, возможно, может быть еще немного в гольф с другим подходом. Я хотел бы избавиться от этого
.filter(n=>n)
.Сохранено 5 байтов благодаря Neil
Сохранено 3 байта благодаря edc65
демонстрация
источник
(d,x)=>(
...,,d)
то внутренняя частьmap
возвращает копиюk
, тем самым избавляя вас от необходимости присваиватьk
, что экономит вам 4 байта.m
, что отрицание , т.(s[x]=(s[x]|0)-d)<m
Е. Экономит вам байт.a=>a.map(n=>[...n+''].map((d,i)=>(t=s[i]=s[i]||[0],t.push(d),(t[0]-=d)<m?r=t:0)),s=[],m=0)&&r.slice(1)
+''
Pyth,
58 байтПринимает входные данные как список строк, выводит их как список цифр, не разделенный ничем.
Попробуйте онлайн!
Объяснение:
источник
Pyth, 11 байт
Программа, которая принимает ввод списка целых чисел в STDIN и печатает список.
Попробуйте онлайн
Как это устроено
источник
JavaScript (ES6), 90
источник
Pyth - 9 байт
Тестовый пакет .
источник