2008: DFS or BFS?
문제 설명
8*8 배열이 있다.
초기 위치는 왼쪽 하단 ('U'로 표시)이고, 목표 위치는 오른쪽 상단 ('A'로 표시)이며, 나머지 62개의 위치는 ' .'이면 이 광장이 비어 있다는 뜻이고, 'S'이면 이 광장에 큰 돌이 있다는 뜻이다.
다음과 같이 총 9개의 이동이 있다.
위로 한 칸 이동
아래로 한 칸 이동
왼쪽으로 한 칸 이동
오른쪽으로 한 칸 이동
왼쪽 위로 한 칸 이동
오른쪽 위로 한 칸 이동
왼쪽 아래로 한 칸 이동
오른쪽 아래로 한 칸 이동
이동하지 않음.
이동을 완료하면 모든 큰 돌이 한 칸 아래로 떨어진다(큰 돌의 위치가 (x, y)이면, 다음에는 (x+1, y)가 되지만, 이미 그 자리에 돌이 있거나, 맨 아래 줄에 있으면 배열에서 떨어져 사라진다.)
돌이 있는 위치에는 머무를 수 없다.
왼쪽 하단 모서리에서 오른쪽 상단 모서리까지 안전하게 도달할 수 있다면 "Yes"를 출력하고, 그렇지 않으면 "No"를 출력하세요.
입력 설명
8*8 크기의 배열정보가 입력된다.
왼쪽하단은 'U'
오른쪽 상단은 'A'
나머지 위치는 빈 공간이면 '.' 돌이 있으면 'S' 가 입력된다.
출력 설명
목적지에 도달할 수 있으면 Yes 아니면 No를 출력하세요.
입력 예시 Copy
.......A
........
........
........
........
........
........
U.......
출력 예시 Copy
Yes