첫 줄에 공백이 있고 하나의 마침표 ( .
, "공")가 있고 그 뒤에 공백, 슬래시 ( /
) 및 백 슬래시 ( )가 포함 된 줄이있는 \
경우, 공이 시작 위치에서 떨어지면 어느 열이 들어갈 지 결정하십시오. . 각각 /
1 열씩 왼쪽으로 \
이동하고 1 열씩 오른쪽으로 이동합니다.
샘플 입력
.
/ \ \
/ /
\ \/ \
\ /\
\ /\ \
\ /
샘플 출력
공은 5 열에서 시작하여 /
3 번 라인에서 3 번을 치고 \
5 번에서 7 번 라인 에서 3 번의 최종 위치는 다음과 같습니다.
7
열은 1- 인덱싱되며 대부분 텍스트 편집기 규칙과의 일관성을 유지합니다.
가장자리 케이스
공이 /
첫 번째 열에서 a 를 치면 , 존재하지 않는 열 0에 영원히 붙어 있습니다 0
. 프로그램은 이것을 인쇄하여 올바르게 처리해야합니다 .
볼이 \/
패턴 의 양쪽에 닿으면 결과는 정의되지 않습니다. 귀하의 프로그램은 출력없이 종료되거나 무한 루프되거나 오류 메시지를 -1
인쇄 할 수 있지만 (내 솔루션은 인쇄합니다 ) 유효한 출력으로 인식 될 수있는 것을 인쇄해서는 안됩니다.
공이 \\
패턴 에서 왼쪽 슬래시에 닿으면 오른쪽이 아닌 오른쪽 슬래시 바로 아래로 끝나야합니다. 원래 구상 한 솔루션은이 문제가 발생하기 쉽기 때문에 그 길을 놓치지 마십시오!
.
마지막 /
또는 \
각 줄 다음에 공백이있을 수도 있고 없을 수도 있습니다 . 프로그램은 이러한 패딩을 사용할 수 있어야합니다. 비슷한 메모에서 첫 번째 줄 다음에 줄이있을 수도 있고 없을 수도 있습니다.
첫 번째 줄에 0 개 이상의 공백이 있고 정확히 1 개가 있다고 가정 할 수 있습니다 .
. 후속 행은 공백이없고 슬래시가 0 이상입니다.
구현 세부 사항
프로그램은 사용자 편의에 따라 파일 (명령 줄 인수로 지정)에서 읽거나 표준 입력에서 읽을 수 있습니다.
프로그램은 단일 숫자를 표준 출력으로 출력해야합니다. (예, 후행 줄 바꿈은 괜찮습니다. 예, 숫자가 두 자리 이상일 수 있습니다.)
테스트 사례
입력:
.
산출:
1
여기서 입력은 정확히 1 바이트입니다. 처리 할 수있는 가장 작은 경우입니다.
입력:
. \ \ \ \
산출:
6
이 슬래시 다음에는 공백이 없습니다.
입력:
. / /\\ / \ //\ \/// // \\/ \/\ /\/
산출:
0
입력:
. / / / \\\ /\\ / \
산출:
1
입력:
. \ / / \
산출:
4
입력:
. \ \/\/\/
산출:
(anything but a nonnegative number)
맺음말
이 질문은 (중력 기반) 당구 공 유형 컴퓨터 시뮬레이션 과 유사 하지만 훨씬 더 단순하므로 더 많은 관심을 끌기를 바랍니다.
파이썬에는 169 자 솔루션이 있습니다. 그래도 재능있는 골퍼들이 그 기록을 조각으로 찢을 수 있다고 확신합니다. : ^)
이것은 code-golf 이므로 월말에 가장 짧은 문자 답변이 허용됩니다!