입력
입력은 하나의 문자열이며, 일부 2n+1
줄은 개행으로 길이 줄로 구분됩니다 . 정수 는 입력의 일부가 아닙니다. 문자열에서 계산해야합니다. 행은 "방향 문자"로 구성 됩니다. 줄 바꿈에 문제가있는 경우 세로 줄로 바꿀 수 있습니다 .2n+1
n ≥ 0
n
>^<v
|
입력은 크기의 정사각형 그리드를 형성하며 (2n+1)x(2n+1)
, 그리드의 각 셀은 네 개의 기본 방향 중 하나를 가리키는 로터 라우터 로 해석됩니다 . 우리는 드롭 진행 토큰 그리드의 중심에 라우터를 다음 라우터는 다음과 같은 방법으로 주위를 이동합니다. 토큰이 라우터에 도달하면 라우터는 시계 반대 방향으로 90도 회전하고 새 방향으로 토큰을 한 단계 이동합니다. 다른 라우터에 연결되면 프로세스가 반복되지만 결국 토큰은 그리드에서 떨어집니다.
산출
출력은 입력과 동일한 형식으로 라우터의 최종 구성입니다.
예
예제 입력으로 3x3
그리드를 고려하십시오.
<^<
^><
>^v
중앙 라우터가 토큰을 표시하도록 강조 표시되어 있습니다 (보기가 어렵습니다). 중앙 라우터가 북쪽을 향하도록 회전하고 토큰을 맨 위 행의 중앙 셀로 이동합니다.
<^<
^^<
>^v
이 라우터는 서쪽을 향하도록 회전하고 토큰을 왼쪽 상단으로 보냅니다.
<<<
^^<
>^v
모퉁이의 라우터는 토큰을 남쪽으로 보내므로 이제 가운데 줄의 가장 왼쪽 셀에 있습니다.
v<<
^^<
>^v
이 라우터는 서쪽을 향하도록 회전하고 토큰을 그리드 밖으로 보냅니다.
v<<
<^<
>^v
이것이 최종 그리드 구성이므로 프로그램에서 출력해야합니다. 보다 복잡한 예에서 토큰은 그리드에서 떨어지기 전에 동일한 라우터를 여러 번 전달할 수 있습니다.
규칙
함수 또는 전체 프로그램을 작성할 수 있습니다. 이것은 코드 골프이므로 가장 낮은 바이트 수가 이깁니다. 표준 허점은 허용되지 않습니다. 입력 및 / 또는 출력에 후행 줄 바꿈이 있는지 여부를 결정할 수 있습니다.
테스트 사례
Input:
v
Output:
>
Input:
<^<
^><
>^v
Output:
v<<
<^<
>^v
Input:
>>^>>
v<vv<
>^>^<
^<>>^
vvv>>
Output:
>>^>>
>v>>v
^>>vv
^^>>>
v^<<^
Input:
<^^^^^^^^
<<^^^^^^>
<<<^^^^>>
<<<<^^>>>
<<<<^>>>>
<<<vv>>>>
<<vvvv>>>
<vvvvvv>>
vvvvvvvv>
Output:
>>>>>>>>v
^>>>>>>vv
^^>>>>vvv
^^^>>vvvv
<<<<<vvvv
^^^^<<vvv
^^^<<<<vv
^^<<<<<<v
^<<<<<<<<