Натхненний створенням бінарної стіни
Враховуючи список натуральних чисел, ми можемо виписати їх над собою, [2, 6, 9, 4]
як приклад:
0010
0110
1001
0100
Ми можемо уявити це як стіну:
..#.
.##.
#..#
.#..
Однак це дуже слабка стіна, і вона обвалилася! Кожен 1
( #
) падає вниз, поки не потрапить на "землю" чи іншу 1
( #
). В 0
и ( .
и) присутні в місцях , залишених переміщуються 1
с.
Це стає наступним:
....
....
.##.
####
Що перекладається на:
0000
0000
0110
1111
Який, як перелік чисел, є [0, 0, 6, 15]
.
Ще один тестовий випадок
[10, 17, 19, 23]
Це стає:
01010
10001
10011
10111
що стає:
00000
10011
10011
11111
переклад назад до:
[0, 19, 19, 31]
Виклик
Давши список натуральних чисел, застосуйте це перетворення до списку. Введення / виведення як списки натуральних чисел у будь-якому розумному форматі. Застосовуються стандартні лазівки.
Це кодовий гольф , тому найкоротша відповідь у байтах виграє!