페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2099

Robot motion 1s 128MB

문제

 

 

명령에 따라서 움직이게끔 만들어진 로봇이 있다. 가능한 명령은 다음과 같다.

N : 위로 한 칸 이동 S : 아래로 한 칸 이동 E : 오른쪽으로 한 칸 이동 W : 왼쪽으로 한 칸 이동 로봇이 움직이는 예를 한번 들어보자. 위 그림의 왼쪽 지도의 예처럼 로봇은 맨 위쪽의 어느 한 군데 있다. 

남쪽으로 움직인다. 그 다음 주어진 명령에 따라서 움직이다 10번째 명령을 받았을 때, 지도 밖으로 나가게 된다. 

오른쪽의 그림의 경우 3번의 명령 후에 8번 명령을 따른 다음 3번째 명령을 받은 자리로 다시 돌아오게 되고,

더 이상 나가지를 못한다.

지도의 정보와 로봇의 처음 위치를 입력 받았을 때, 이것이 얼마 만에 지도를 빠져나가는지, 

아니면 지도에서 빠져나갈 수 없는지 알아보는 프로그램을 작성하라.

 


입력

첫 번째 줄에는 지도의 높이와 너비(1≤H, W≤10)와 처음에 로봇이 서있는 위치가 입력된다. 두 번째 줄부터 H개 줄에 W개의 문자가 입력되는데, 이는 해당 지도상에서 로봇이 수행해야 할 명령을 뜻한다.


출력

지도에서 빠져 나올 수 있는 경우 다음과 같이 출력한다. A step(s) to exit 여기서 A는 빠져나가기 위해 거쳐 가야 할 명령의 수를 의미한다.

지도에서 빠져 나올 수 없는 경우엔 다음과 같이 출력한다. A step(s) before a loop of B step(s) 여기에서의 A는 loop가 시작되기 전까지 수행한 명령의 수, B는 loop가 시작되는 시작점에 돌아오기까지 걸린 명령의 수를 말한다.


예제 #1

3 6 5

NEESWE
WWWESS
SNWWWW
10 step(s) to exit

예제 #2

4 5 1

SESWE
EESNW
NWEEN
EWSEN
3 step(s) before a loop of 8 step(s)

출처

Mid-Central USA 1999
로그인해야 코드를 작성할 수 있어요.