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

#3407

우회전 1s 64MB

문제

미 정부 자료에 따르면, 교차로 사고의 53.1%가 좌회전 시 발생하며, 

이와 반대로 우회전 시에는 5.7%만 발생한다. 

미국 대도시에서 귀빈 고객만을 모시는 모범 택시 기사인 정원이는 고객의 안전을 위하여 승객을 태운 경우는 아예 우회전만 하기로 했다.

정원이의 도시는 2차원 지도로 나타나 있다. 정원이는 ‘A’에서 승객을 태우고 ‘B’까지 가려고 한다. 

‘R’으로 표시된 곳이 도로이며, ‘X’로는 갈 수 없다. 

정원이의 택시는 위, 아래, 왼쪽, 그리고 오른쪽으로만 움직이며 대각선으로는 갈 수 없고 지도 밖으로도 갈 수 없다. 

시작 지점에서, 정원이는 인접한 곳에 도로만 있다면 상하좌우 어디든 갈 수 있지만, 

그 다음부터는 진행하던 방향으로 직진하거나, 우회전만 할 수 있다.

정원이를 도와 A에서 B까지 직진과 우회전만으로 가는 최단경로의 길이를 구하는 프로그램을 작성하라.

 


입력

첫 줄에 지도의 크기인 N, M이 공백을 사이에 두고 주어진다. (1≤N≤100, 1≤M≤100)

다음 N줄 M칸에 걸쳐, ‘A’, ‘B’, ‘R’, ‘X’ 로만 이루어진 지도가 주어진다. 각 문자 사이에는 공백이 없다.


출력

직진과 우회전으로만 A에서 B로 가는 최단경로의 길이를 구하여라.

만약에 직진, 우회전만 가지고 이동할 수 없는 경우에는 -1을 출력한다.


예제 #1

5 5

XXXXA
XXXXR
XXXXR
XXXXR
BRRRR
8

예제 #2

5 5

XXXXB
XXXXR
XXXXR
XXXXR
ARRRR
-1

예제 #3

5 5

XXXBX
XXXRX
XXXRX
ARRRR
XXXRR
10


출처

Penn State CodePSU 2018, Problem G | ohjtgood
로그인해야 코드를 작성할 수 있어요.