Giriş
Bu uzunluk 5'in bir günlüğüdür:
#####
Bu kütüklerin bir demetini üst üste koymak istiyorum. Bunu nasıl yapacağım, yeni bir günlüğü sağdan en üstteki günlüğe kaydırmam ve sol veya sağ uçları hizalandığında kaymayı bırakmam (nedenini sorma). Yeni günlük daha uzunsa, en üstteki günlüğün sol ucuna kadar kayar:
######## <-
#####
Daha kısa ise, yalnızca sağ uçları hizalanana kadar kayar:
###### <-
########
#####
Kazığa daha fazla günlük kaydırdığımda, konumları geçerli en üstteki günlük tarafından belirlenir:
##
######
###
####
##
######
########
#####
Bu fiziksel olarak imkansız görünüyor, ama işe yarıyormuş gibi yapalım.
Görev
Girişiniz, günlüklerimin uzunluklarını temsil eden boş olmayan bir pozitif tamsayı listesi olmalıdır. En soldaki sayı, kazığa koyduğum ilk günlüktür, bu yüzden en altta biter. Yukarıdaki örnekte, girdi olacaktır [5,8,6,2,4,3,6,2]
. Çıktınız, elde edilen yığının her bir sütunu için, bu sütunu geçen günlüklerin sayısı olacaktır. Yukarıdaki örnekte, doğru çıktı olacaktır [2,2,3,3,3,2,4,6,3,3,1,2,2]
.
Kurallar ve puanlama
Giriş ve çıkış herhangi bir makul formatta olabilir. Çıktı yalnızca pozitif tamsayılar içerebilir, yani öndeki veya sondaki s'ler olmamalıdır 0
. Normal kod golf kuralları geçerlidir: tam bir program veya işlev yazabilirsiniz, en düşük bayt sayısı kazanır ve standart boşluklar yasaktır.
Test senaryoları
[1] -> [1]
[4] -> [1,1,1,1]
[3,2] -> [1,2,2]
[2,3] -> [2,2,1]
[2,2,2] -> [3,3]
[2,3,2] -> [2,3,2]
[3,2,3] -> [1,3,3,1]
[1,3,2,2,1,3,1] -> [2,3,5,1,2]
[4,3,4,2,4,3,4,2] -> [1,3,3,5,5,3,4,2]
[5,8,6,2,4,3,6,2] -> [2,2,3,3,3,2,4,6,3,3,1,2,2]
[5,10,15,1,1,1,1,1,2] -> [3,3,3,3,3,2,2,2,2,2,1,1,1,1,7,1]
[13,12,2,10,14,12] -> [1,2,2,2,2,2,2,2,2,2,2,5,5,3,3,3,3,3,3,3,3,2,2,2,2]
[12,14,3,6,13,1,1] -> [2,2,2,2,2,2,2,2,2,2,2,5,4,4,2,2,2,1,1,1,1,1,1,3]
[7,5,12,5,1,10,14,5] -> [1,1,3,3,3,3,3,1,1,2,2,2,2,5,2,2,2,2,2,2,2,2,3,2,2,2,2]
[14,5,1,3,12,6,2,2,1,7,9,15] -> [1,1,1,1,1,1,1,1,1,2,2,2,2,5,2,2,1,1,1,2,2,2,2,4,8,3,3,3,3,3,3,2,2,1,1,1,1,1,1]