매튜는 퍼즐 풀기를 좋아합니다. 그가 해결할 때마다 행복하게 건너 뜁니다. 최근에 그는 유성우가 떨어지고 싶지 않은 땅에 분화구와 구멍을 열었을 때 이것을 실제로 해야 합니다.
매튜가 건너고 싶은 풍경의 일부가 주어 졌으면 좋겠다. 접지는 미터 단위로 제공되며 각 미터는 일반 접지 또는 구멍입니다. 그가 달리면 그는 한 걸음마다 1 미터를 넘습니다. 대안은 단계 당 4 미터를 넘는 점프입니다. Matthew는 첫 번째 지상 미터의 맨 왼쪽에서 시작하여 마지막 미터에 도달하려고합니다.
입력
입력은 표준 입력에서 한 줄로 제공되며 줄 바꿈으로 종료됩니다. 선은 각각 접지 또는 구멍 미터를 나타내는 대시 ( -
) 또는 밑줄 ( _
) 로 구성됩니다 . 샘플 입력은 다음과 같습니다.
----__--___---
주어진 조경은 최소 1 미터에서 최대 30 미터이며 항상 지상에서 시작합니다.
산출
출력은 표준 출력으로 제공되며 실행 ( R
) 또는 점프 ( J
) 중 하나 인 Matthew에게 일련의 이동 명령을 나타냅니다 . 위에서 언급했듯이,
뛰기 명령은 Matthew가 1 미터를 달리는 동안 점프는 그를 4 미터 앞으로 옮깁니다. 위의 예에서 다음과 같은 움직임이 가능합니다.
RRJRJRR
대략 다음과 같이 보입니다.
가로 방향으로 안전한 경로가 없으면 느낌표 하나 ( !
)를 인쇄해야합니다.
샘플 입력
--------
----__--___---
-_______
-_-_-_-_-_-
-
샘플 출력
JRRR
RRJRJRR
!
!
(이동이 필요하지 않으므로 마지막 출력은 비어 있지만 Markdown 은이를 구문 분석 할 수 없습니다)
노트
가능한 단일 경로 만 필요하므로 프로그램 출력이 샘플 출력과 정확히 일치 할 필요는 없습니다. 솔루션이 존재하고 모든 이동 명령이지면으로 이동하고 마지막 미터에 도달하면 출력이 유효합니다.
표준 오류에 대한 추가 출력은 무시됩니다.
승리 조건
골프에서 관례 적으로 가장 짧은 코드가 승리합니다. 동점 인 경우에는 이전 솔루션이 우선합니다.
테스트 사례
동일한 테스트 사례를 포함하는 두 개의 테스트 스크립트가 있습니다.
- bash ( Ventero 에게 감사드립니다 )
- PowerShell
호출은 두 경우 모두에 해당합니다. <test script> <my program> [arguments]
예 : ./test ruby jumprun.rb
또는 ./test.ps1 ./jumprun.exe
.
다른 메모
이 과제는 2011-W24 년에 제 대학에서 열린 골프 대회의 일부였습니다. 참가자의 점수와 언어는 다음과 같습니다.
- 104 – 하스켈
- 131 – 하스켈
- 154 – C
- 170 – C
- 275 – VB.NET
- 286 – 공통 리스프
우리 자신의 솔루션은
- 92 – 루비
- 124 – PowerShell
./test.sh perl jump.pl
-를./test.sh: line 42: syntax error near unexpected token 'done'
bash는 3.2.48에서,