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

#3043

공주는 탈출할 수 있을까? 2s 512MB

문제

어느 왕국에 폭정을 일삼던 공주가 시민 혁명에 궁을 떠나야 하는 처지에 놓였다. 시민군에 잡히면 평생을 감옥에서 살게 될 것이 분명하므로 확실한 탈출로를 찾아야 한다.

 

시민군이 궁안으로 들이닥쳤다. 마침 이런 경우를 대비하여 비상 출구를 한 곳 만들어 놓았다.

그런데 그 출구까지 가는 것이 문제이다. 시민군보다 먼저 도착하여야 한다.

 

편의상 궁을 N*M크기의 격자라고 하자. 또한 궁의 둘레에는 높은 성벽으로 가로 막혀있다고 한다.

 

공주의 수하들이 현재 시민군의 위치와 공주의 위치 등 탈출에 필요한 상태를 지도로 만들어 가지고 왔다. 이 지도를 토대로 공주가 확실하게 탈출할 수 있는 방법 존재하는지 판단하는 프로그램을 작성해보자.

 

지도 정보에는 아래 5가지 문자들만 입력된다는 것이 보장된다.     ‘@’ - 공주가 있는 현재 위치     ‘$’ - 시민군이 있는 위치     ‘%’ - 비상출구     ‘.’ - 지나갈 수 있는 공간     ‘#’ - 벽으로 막힌 곳 그리고 공주의 위치를 나타내는 문자 ‘@’와 비상출구의 위치를 나타내는 문자 ‘%’는 오직 한 개씩만 입력된다는 것이 보장된다. 

 


입력

6개미만의 테스트 케이스로 이루어진다. 각 테스트 케이스 첫 행에는 지도의 높이 H와 너비 W가 주어진다.( 1 <= H, W <= 200) 다음 H개의 행에는 지도의 정보를 나타내는 길이 W의 문자열이 주어진다. 테스트 케이스의 마지막은 0 0 이 입력된다.

출력

각 테스트 케이스에 대하여 공주가 탈출이 가능 하다면 Yes를 불가능하다면 No를 행으로 구분하여 출력한다.

예제 #1

2 4

%.@$
..$$
3 4
.%..
.##.
.@$.
0 0
Yes

Yes

예제 #2

2 3

%$@
###
2 3
@#$
.%.
2 2
@%
..
0 0
No

No
Yes

출처

jag2016_2
로그인해야 코드를 작성할 수 있어요.