두 개의 평행 거울로 구성된 복도가 있다면 어떨까요?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
자, 우리는 레이저를 아래로 비 춥니 다 ...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
오, 봐 그것은 끝까지 튀었다.
두 개의 레이저를 그리지 만 반대 방향으로 가면 어떻게 될까요?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
흠, 그들은 만나지 않는 것 같았습니다. 편리합니다. 두 레이저가 동일한 공간을 차지하면 어떻게됩니까?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
꽤 분명한 것 같아요?
이 도표를 손으로 그리는 것은 상당히 힘들다 (나를 믿어 라). 아마도 어떤 코드는 우리를 위해 그것을 할 수 있습니까?
- 두 개의 튀는 교차 레이저와 함께 두 개의 병렬 미러를 출력하는 코드를 작성하십시오.
- 입력 (모든 정수) :
- 복도의 폭
- 복도의 길이
- 오른쪽으로가는 레이저의 시작 위치 (제로 인덱스, 너비보다 작아야 함)
- 왼쪽으로가는 레이저의 시작 위치 (제로 인덱스, 너비보다 작아야 함)
- 방법
- 레이저가 올바르게 진행되면 다음 줄에서 오른쪽으로 한 칸씩 그려집니다.
- 레이저를 계속 사용하면 다음 줄에서 왼쪽으로 한 칸씩 그려집니다.
- 레이저가 옆으로 나아갈 수 없으면 방향은 바뀌지 만 위치는 바뀌지 않습니다.
- 두 레이저의 색인이 모두 같은 경우 대문자 X를 해당 색인에 인쇄하십시오.
- 산출
- 여러 줄의 문자열
- 각 줄은 파이프 문자 (|)로 시작하고 끝납니다.
- 오른쪽 레이저는 백 슬래시 (\)로 표시됩니다.
- 왼쪽으로가는 레이저는 슬래시 (/)로 표시됩니다.
- 두 레이저의 교차점은 대문자 X로 표시됩니다.
- 모든 언어
- TIO 링크 를보고 싶습니다
- 가장 작은 바이트 수로 수정하려고합니다.
테스트 사례
폭 : 6 길이 : 10 오른쪽 이동 : 1 왼쪽 이동 : 4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
폭 : 6 길이 : 10 오른쪽 이동 : 0 왼쪽 이동 : 1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
폭 : 4 길이 : 10 오른쪽 이동 : 2 왼쪽 이동 : 0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
폭 : 20 길이 : 5 오른쪽 이동 : 5 왼쪽 이동 : 15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
폭 : 5 길이 : 6 오른쪽 이동 : 2 왼쪽 이동 : 2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
폭 : 1 길이 : 2 오른쪽 이동 : 0 왼쪽 이동 : 0
|X|
|X|