화살표가 동일한 시계 방향 또는 시계 반대 방향 (각각의 윤곽에는 고유 한 방향이 있음)으로 일정하게 향하고 닫힌 양의 겹치지 않는 2D 윤곽선 (대각선에서도 1 개 이상의 공간으로 구분됨)과 양수를 지정 n
하면 화살표를 움직입니다. n
각 방향으로 윤곽을 따라 단계. 화살표는 > v < ^
각각 오른쪽, 아래쪽, 왼쪽 및 위쪽 방향으로 표시됩니다. 다른 문자는 -
(가로), |
(세로) 및 +
(코너)입니다. 화살표가 모퉁이에 있으면 현재 방향을 유지하고 회전 한 후에 만 변경됩니다.
두 모서리 사이에 항상 직선 세그먼트 (또는 공백)가있을 것 +-+
입니다 (예 : 수평 및 수직과 유사). 즉, 급회전 U
이 금지됩니다. 모서리 사이의 세그먼트는 수직 또는 수평이며 모서리의 구부러짐은 항상 90 도입니다.
입력:
- 양의 정수--
n
단계 수 - 윤곽선의 ASCII 표현-여러 줄 문자열, 문자열 목록, 문자 목록 등이 될 수 있습니다.
산출:
모든 화살표가있는 동일한 윤곽선이 n
각 윤곽선의 전체 방향 으로 단계적으로 이동했습니다.
테스트 사례 :
1.
입력:
n
= 1
+----->->
| |
| v---+
| |
+---<-------+
산출:
+------>+
| v
| +>--+
| |
+--<--------+
2.
입력:
n
= 2
+-----+ +---+
| | | |
+-->--+ | v
| |
+--->---+ |
| |
+------<<---+
산출:
+-----+ +---+
| | | |
+---->+ | |
| |
+----->-+ v
| |
+----<<-----+
삼.
입력:
n
= 3
+---+ +---+ +-------+
| | | v | |
^ | | | +-<-+ |
| | ^ | | v
| +---+ +-->----+ |
| |
| +-------+ +---+ |
| | | v | |
+---+ +---+ +---+
산출:
+>--+ ^---+ +-------+
| | | | ^ |
| | | | +---+ |
| | | | | |
| +---+ v----->-+ |
| |
| +-------+ +---+ v
| | | | | |
+---+ +-<-+ +---+
4.
입력:
n
= 1
+--+
| |
| +---+
| |
+----+ |
| |
+-+
산출:
+--+
| |
| +---+
| |
+----+ |
| |
+-+
5.
입력
n
= 4
^>>>>
^ v
^ v>>>>
^ v
<<<<<<<<v
산출:
^>>>>
^ v
^ v>>>>
^ v
<<<<<<<<v
6.
입력:
n
= 1
^->
^ v
<<v
산출:
^>+
^ v
<<v
위의 과제를 해결하는 기능이나 프로그램을 작성하십시오. 모든 언어에서 가장 짧은 바이트 코드가 이깁니다. 골프 언어에 낙심하지 마십시오. 알고리즘 및 코드에 대한 설명은 높이 평가됩니다.
There will always be a straight segment (or a space) between any two corners (like +-+ for the horizontal and similar for the vertical) - in other words the sharp U turns are forbidden.