소개
ASCII 문자의 사각형 블록을 시계 방향으로 90도 회전시키는 완전한 프로그램을 작성하십시오. 프로그램 자체가 시계 방향으로 90도 회전하면 ASCII 문자 블록이 시계 반대 방향으로 90도 회전합니다.
규칙
- 행렬을 회전 시키거나 조바꿈하는 내장 기능을 사용하지 않는 경우가 많습니다. 예를 들어 MATLAB / Octave
rot90
및 조옮김 연산자에서'
를 사용할 수 없습니다. - STDIN 및 STDOUT 또는 가장 유사한 항목을 사용하는 완전한 프로그램을 작성해야합니다.
- 프로그램은 직사각형이어야하며 입력도 직사각형이라고 가정하십시오.
- 입력과 출력은 줄 바꿈으로 구분 된 문자열이며 후행 줄 바꿈이 없습니다.
소스 코드를 입력으로 실행하면 프로그램이 시계 방향으로 90도 회전해야합니다. 출력은 시계 반대 방향으로 90도 회전하는 동일한 언어의 두 번째 프로그램이어야합니다. 회전 된 프로그램에 소스 코드가 입력되면 원래 프로그램의 소스 코드를 출력해야합니다.
참고 : 두 프로그램을 위해 일해야 어떤 자체 소스 코드뿐만 아니라 입력에 하므로 한 문자 퀴네는 허용되지 않습니다.
예
다음은 가상 언어 ExampleLang에서 입력을 90도 회전시키는 유효한 프로그램이라고 가정하십시오.
^f a2% 3
lk (^_^&
v
D8 $4 /
자신을 입력으로 실행하면 입력을 시계 반대 방향으로 회전시키는 다른 유효한 프로그램을 출력합니다.
D l^
8 kf
$ (a
4 ^2
_%
^
/v&3
이 두 번째 프로그램은 입력으로 제공 될 때 원래 프로그램을 출력합니다. 빈 줄은 4 개의 공백을 가져야하며 마지막 줄부터 마지막 줄에는 마크 다운으로 렌더링 할 수 없습니다. 명확히하기 위해 :
$ examplelang program < program > rotProg
$ examplelang rotProg < rotProg > program1
$ diff -s program program1
Files program and program1 are identical
최단 프로그램이 이깁니다. 표준 허점은 금지되어 있습니다.
:.+
여러 줄로 나눌 수 없습니까?