소개
이것은 길이가 5 인 로그입니다.
#####
이 통나무를 서로 쌓아 놓고 싶습니다. 이 작업을 수행하는 방법은 새 로그를 오른쪽에서 가장 위쪽으로 밀고 왼쪽 또는 오른쪽 끝이 정렬되면 슬라이딩을 중지합니다 (이유 묻지 않음). 새 로그가 더 길면 맨 위 로그의 왼쪽 끝까지 밉니다.
######## <-
#####
더 짧은 경우 오른쪽 끝이 정렬 될 때까지만 슬라이드됩니다.
###### <-
########
#####
더 많은 로그를 파일에 밀어 넣으면 해당 위치는 현재 최상위 로그에 의해 결정됩니다.
##
######
###
####
##
######
########
#####
이것은 물리적으로 불가능 해 보이지만 작동한다고 가정 해 봅시다.
작업
귀하의 입력은 내 로그의 길이를 나타내는 비어 있지 않은 양의 정수 목록이어야합니다. 가장 왼쪽의 숫자는 내가 더미에 넣은 첫 번째 로그이므로 맨 아래에 있습니다. 위의 예에서 입력은입니다 [5,8,6,2,4,3,6,2]. 결과 파일의 각 열에 대해 해당 열을 가로 지르는 로그 수가 출력됩니다. 위의 예에서 올바른 출력은입니다 [2,2,3,3,3,2,4,6,3,3,1,2,2].
규칙과 득점
입력 및 출력은 임의의 합리적인 형식 일 수 있습니다. 출력은 양의 정수만 포함 할 수 있습니다. 즉, 선행 또는 후행이 없어야합니다 0. 일반적인 코드 골프 규칙이 적용됩니다. 전체 프로그램 또는 함수를 작성할 수 있으며, 가장 적은 바이트 수로 이기고 표준 허점 은 금지됩니다.
테스트 사례
[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]