Ispirato da Crea un muro binario
Dato un elenco di numeri interi positivi, possiamo scriverli tutti uno sopra l'altro in questo modo, per [2, 6, 9, 4]
esempio:
0010
0110
1001
0100
Possiamo immaginarlo come un muro:
..#.
.##.
#..#
.#..
Tuttavia, questo è un muro molto debole, ed è crollato! Ciascuno 1
( #
) cade finché non colpisce il "terreno" o un altro 1
( #
). Le 0
s .
sono presenti nei punti lasciati dalle mosse 1
.
Questo diventa il seguente:
....
....
.##.
####
Il che si traduce in:
0000
0000
0110
1111
Che, come un elenco di numeri, è [0, 0, 6, 15]
.
Un altro caso di test
[10, 17, 19, 23]
Questo diventa:
01010
10001
10011
10111
che diventa:
00000
10011
10011
11111
traduzione di nuovo a:
[0, 19, 19, 31]
Sfida
Dato un elenco di numeri interi positivi, applica questa trasformazione all'elenco. Input / Output come elenchi di numeri interi positivi in qualsiasi formato ragionevole. Si applicano scappatoie standard.
Questo è un codice-golf , quindi vince la risposta più breve in byte!