가능한 한 작은 공간에 쌓아야 할 보드가 많이 있습니다. 불행히도, 보드를 10 높이 이상 쌓으면 보드가 넘어집니다. 보드를 10 개 이상의 높이로 쌓거나 빈 공간에 매달리지 않고 가능한 한 적은 수평 공간을 차지하도록 보드를 쌓는 방법을 알려주는 프로그램이 필요합니다.
당신의 작업 :
보드 길이를 포함하는 배열을 제공 할 때 보드를 10 개 이상의 높이로 쌓거나 보드의 일부를 가지지 않고 가능한 많은 수평 공간을 절약하기 위해 보드를 쌓는 방법을 ASCII 예술로 출력하는 프로그램 또는 함수를 작성하십시오. 빈 공간에 어울리는 보드. ASCII 아트는 각기 다른 문자를 사용하여 보드 구성을 보여 주어야합니다. 최대 20 개의 보드가 있습니다. 예를 들어 입력이 [2,2,4,2,2,4,4,4] 인 경우 가능한 출력은 다음과 같습니다.
dhh
dgg
dff
dee
abc
abc
abc
abc
이것은 안정적인 구성입니다 (실제로 ~ 0.1 초 후에 떨어지지 만).
입력:
보드의 길이를 나타내는 최대 20 개의 정수를 포함하는 배열입니다.
산출:
위에서 설명한 보드의 구성을 보여주는 ASCII 아트.
테스트 사례 :
테스트 사례에 대한 다른 솔루션이있을 수 있으며 각 보드에 대해 표시된 문자가 다를 수 있습니다.
[12,2,2,2,3,4,4,8,8] -> ffgghhiii
ddddeeeeeeee
bbbbbbbbcccc
aaaaaaaaaaaa
[4,4,4,4,4,4,4,4,4,4,4,4] -> llll
aaaa
cfghk
cfghk
cfghk
cfghk
debij
debij
debij
debij
[4,4,4,4,4,4,3,3,3,2,2,2,1] -> jjml
iiil
hhhk
gggk
ffff
eeee
dddd
cccc
bbbb
aaaa
채점 :
이것은 code-golf 이며 바이트 단위로 가장 낮은 점수입니다