과체중이 걱정되는 Pac-Man의 조언에 따라 Pac-Man은 매일 Pac-Dot 섭취량을 추적하기로 결정했습니다. 미로에서 주어진 길에 Pac-Dots의 수를 세도록 도와주세요!
미로
미로의 자체 인코딩을 구축하려면 여기에서 원시 데이터를 얻을 수 있습니다 .
팩맨 여행
이 문제와 관련하여 다음 규칙이 적용됩니다.
- 첫째, 좋은 소식은 귀신이 없다는 것입니다.
- 팩맨은 항상 동쪽으로 향하는 위의 그림에 표시된 위치에서 레이스를 시작합니다. 시작 위치에 Pac-Dot이 없습니다.
- 그가 직선 경로를 따르는 한 계속해서 다음 사각형으로 진행합니다.
- 그가 발견 한 경우 90 ° 회전 가능한 다른 경로없이 (지도 오렌지 사각형), 그는 자동으로 체계적으로 회전을합니다.
- 여러 경로를 사용할 수 있는 교차로 (지도의 녹색 사각형)가있는 경우 같은 방향으로 계속 (해당되는 경우) 계속하거나 다른 방향을 선택할 수 있습니다 (U 턴 포함).
- 팩맨은 미로의 왼쪽 중앙 또는 오른쪽 중앙에있는 출구 중 하나를 통과하면 즉시 반대편에 다시 나타납니다.
- 팩맨은 자신이 따르는 경로에서 팩 팩 도트를 모두 먹는다. Pac-Dot를 먹으면 미로에서 제거됩니다.
도전
입력
Pac-Man의 정션에 대한 팩맨의 행동을 설명하는 문자열이 제공됩니다. 이 문자열은 다음 문자로 구성됩니다.
L
: 왼쪽으로 90 ° 회전R
: 오른쪽으로 90도 회전F
: 앞으로 이동 (방향 변경 없음)B
: 뒤로 이동 (U 턴)
모든 캐릭터가 처리되면 Pac-Man은 다음 번 만나는 지점에서 멈 춥니 다.
산출
입력 경로를 따라 먹는 Pac-Dots의 수를 인쇄하거나 출력해야합니다.
규칙
- 전체 프로그램이나 함수를 작성할 수 있습니다.
- 문자열 또는 문자 배열로 대문자 또는 소문자를 입력 할 수 있습니다. 에서 다른 문자 (방향 당 한 문자 만) 또는 정수를 사용할 수도 있습니다
[0 .. 9]
. 그렇게 할 경우 답을 명확하게 지정하십시오. - 입력이 항상 유효하다고 가정 할 수 있습니다. (아래의 jsFiddle은 오류를 감지하지만 그렇지는 않습니다.)
- 이것은 코드 골프이므로 바이트 단위의 가장 짧은 코드가 이깁니다.
- 표준 허점은 금지되어 있습니다.
힌트
미로의 정확한 모양을 저장하는 것이 필요하거나 최적이 아닐 수도 있습니다.
테스트 사례 및 데모
이 jsFiddle에서 다음 테스트 케이스 또는 기타 입력을 테스트 할 수 있습니다 .
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!