도전
인쇄 가능한 ASCII 문자로 구성된 직사각형 격자가 문자열 또는 표준 입력을 통해 주어지면 공백이 아닌 문자를 맨 아래의 더미로 축소하는 함수 또는 프로그램을 작성하십시오.
규칙:
- 출력은 입력과 동일한 치수와 문자를 갖습니다.
- 에서 비 공백 문자는
(row a,column b)
공백 문자 가질 수 없습니다' '
에서(a-1, b)
,(a-1,b-1)
또는(a-1,b+1)
행이 가장 아래에서 위로 번호가 매겨집니다. 이로 인해 모든 수직 파일이 옆으로 축소됩니다. - 공백이 아닌 문자는 대부분의
(initial height - final height)
장소에서 왼쪽이나 오른쪽으로 이동할 수 있습니다 (그림 1 참조). - 화면에서 문자가 떨어지지 않고 그림의 공간이 충분하다고 가정 할 수 있습니다.
그림 1 : 각각에 @#$
표시된 문자의 가능한 최종 위치 x,y,z
.
..............
...@..........
..xxx.........
.xxxxx...#....
xxxxxxx.yyy.$.
문자 축소 순서를 자유롭게 선택할 수 있습니다. 후행 공백은 좋지 않지만 후행 줄 바꿈은 유효합니다.
이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다!
예
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
하나의 가능한 출력 :
--(_
/----|/|(o_)
/|/~\---~\\/o)
..."Have*you~mooed~today?"...