중력 뒤집기 (Gravity) > 문제은행



문제은행

2721 : 중력 뒤집기 (Gravity)

제한시간: 1000 ms    메모리제한: 32 MB
해결횟수: 63 회    시도횟수: 466 회   



진호는 중력 뒤집기 게임을 만들고 있다. 중력 뒤집기 게임은 NxM 크기의 격자 모양의 화면에서 진행되며, 조금의 조작을 통해 플레이어를 도착지점까지 움직여야 한다.

 

1) 만약 플레이어가 도착지점이 있는 곳에 있으면 중력 방향 격자가 어떻든지 간에 게임 클리어가 된다.

2) 만약 플레이어의 중력 방향(아래쪽 혹은 위쪽) 격자가 비어있다면 플레이어는 중력 방향으로 떨어진다. 플레이어가 떨어지는 동안에는 버튼이 먹히지 않으며 플레이어가 화면 밖으로 나가게 되면 게임 오버가 된다. (화면 밖의 격자는 모두 빈 공간이다)

 

3) L/R 버튼을 누르면 플레이어는 한 칸 왼쪽/오른쪽으로 움직인다. 만약 플레이어가 가려는 곳이 벽으로 막혀 있으면 플레이어는 움직이지 않는다.

 

4) G 버튼을 누르면 중력이 반대 방향으로 바뀐다. 단, 처음에는 중력이 아래쪽으로 작용한다.

 

진호는 게임을 깨지 못 하는 사람들을 위해 힌트를 제공하려고 한다. 맵이 주어질 때 중력을 뒤집는 최소 횟수를 구하는 프로그램을 작성하여라.


첫 번째 줄에는 맵의 크기 N, M이 주어진다. (1 ≤ N, M ≤ 500)
두 번째 줄부터 N개의 줄에는 맵의 모양이 주어진다. ‘.’는 빈 공간, ‘#’는 벽, ‘C’는 시작점, ‘D’는 도착점을 의미한다.


맵을 클리어하기 위해 눌러야 하는 G 버튼의 최소 횟수(중력을 뒤집는 최소 횟수)를 출력한다.
만약 맵을 클리어할 수 없다면 -1을 출력한다.

5 5
#####
#...#
#...D
#C...
##.##
3


플레이어는 G, R, R, G, R, G를 차례대로 눌러서 맵을 클리어할 수 있다.






HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 070-7163-5782 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.