아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

터틀 마스터

시간 제한1초메모리 제한1024 MB

요약
8 x 8 보드에서 F, R, L, X 명령으로 이루어진 프로그램을 실행해 오류 없이 다이아몬드에 도달하는지 확인합니다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

로봇 거북이(Robot Turtles)는 Theta가 가장 좋아하는 게임 중 하나다. 이 게임에서 유치원생들은 거북이를 출발 칸에서 다이아몬드까지 옮기는 프로그램을 짜면서 프로그래밍을 배운다. Robot Turtles는 Kickstarter 인큐베이터가 지원한 게임 중 가장 크게 성공한 게임으로 알려져 있다.

실제 보드게임에서는 어른이 '터틀 마스터' 역할을 맡아 CPU처럼 프로그램을 실행한다. 단순하고 지루한 일이라 자동화하기 좋은 작업이다. 이 문제에서는 터틀 마스터의 작업을 자동화하는 프로그램을 작성한다.

게임은 8×88 \times 8 보드에서 진행된다. T로 표시된 거북이는 항상 왼쪽 아래 칸에서 오른쪽을 바라보며 시작한다. 보드에는 빈 칸(.), 바위 성(C), 얼음 성(I)이 있다. 다이아몬드는 D로 표시한다. 거북이는 빈 칸과 다이아몬드가 있는 칸으로만 이동할 수 있다.

거북이 프로그램에는 한 글자로 표시되는 명령어 4종류가 있다.

F는 거북이가 바라보는 방향으로 한 칸 전진한다. 바로 앞이 성이거나 보드의 경계라면 프로그램 오류가 발생한다.

R은 거북이를 오른쪽으로 90도 돌린다. 거북이는 같은 칸에 머문다.

L은 거북이를 왼쪽으로 90도 돌린다. 거북이는 같은 칸에 머문다.

X는 거북이가 바라보는 방향으로 레이저를 쏜다. 바로 앞 칸이 얼음 성이면 얼음 성이 녹아 빈 칸이 된다. 그 밖의 경우에는 프로그램 오류가 발생한다. 거북이는 움직이지도 방향을 바꾸지도 않는다. 빈 칸, 바위 성, 보드 밖을 향해 레이저를 쏘면 프로그램 오류다.

입력

입력은 9줄로 이루어진다. 처음 8줄은 보드를 나타내며, 한 줄에 보드의 한 행이 들어 있다. 거북이는 항상 왼쪽 아래에 있다. 다이아몬드는 정확히 하나다. 9번째 줄은 터틀 마스터가 실행해야 할 프로그램이다.

출력

프로그램 오류 없이 전체 프로그램을 실행했고, 실행이 끝난 뒤 거북이가 다이아몬드 칸에 있으면 Diamond!를 출력한다. 프로그램 오류가 발생했거나 거북이가 다이아몬드 칸에 도착하지 못했으면 Bug!를 출력한다.

예제3

  1. 예제 1

    입력
    ........
    ........
    ........
    ...CC...
    ..C.DC..
    .C..C...
    C.IC....
    T.C.....
    FLFRXFLFRFLFRF
    
    예상 출력
    Diamond!
    
  2. 예제 2

    입력
    ........
    ........
    ........
    ...CC...
    ..C.DC..
    .C..C...
    C.IC....
    T.C.....
    FLFRFLFRFLFRF
    
    예상 출력
    Bug!
    
  3. 예제 3

    입력
    ........
    ........
    ........
    ...CC...
    ..C.DC..
    .C..C...
    C.IC....
    T.C.....
    FLFRXFLFRFLFFR
    
    예상 출력
    Bug!