상범 빌딩

면접 대비

시간 제한1초메모리 제한128 MB

요약
막힌 칸과 빈 칸으로 이루어진 3차원 격자에서 시작점에서 출구까지의 최단 이동 횟수를 구하거나 불가능하면 보고한다.
난이도

보통10점 중 4점

유형
BFS, 그래프, 최단 경로, 행렬
정답자
아직 제출이 없습니다

문제

당신은 상범 빌딩에 갇히고 말았다. 이곳을 탈출하는 가장 빠른 방법은 무엇일까?

상범 빌딩은 한 변의 길이가 11인 단위 정육면체들로 이루어져 있다. 각 정육면체는 금으로 꽉 차 있어 지나갈 수 없거나, 비어 있어 지나갈 수 있다. 당신은 현재 칸에서 인접한 66개의 칸(동, 서, 남, 북, 위, 아래) 중 하나로 11분에 한 칸씩 이동할 수 있다. 대각선으로는 이동할 수 없다. 빌딩의 바깥면은 모두 금으로 막혀 있으므로, 오직 출구를 통해서만 밖으로 나갈 수 있다.

당신은 상범 빌딩을 탈출할 수 있을까? 만약 탈출할 수 있다면 시간이 얼마나 걸릴까?

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 세 정수 LL, RR, CC가 주어진다. L (1≤L≤30)L\,(1 \le L \le 30)은 빌딩의 층 수이고, R (1≤R≤30)R\,(1 \le R \le 30)과 C (1≤C≤30)C\,(1 \le C \le 30)은 한 층의 행과 열의 개수이다.

이어서 CC개의 문자로 이루어진 행이 RR개씩, 모두 LL개 층에 대해 주어진다. 각 문자는 빌딩의 한 칸을 나타낸다.

  • # : 금으로 막혀 지나갈 수 없는 칸
  • . : 비어 있어 지나갈 수 있는 칸
  • S : 당신의 시작 지점
  • E : 탈출할 수 있는 출구

각 층 사이에는 빈 줄이 하나씩 있다. 시작 지점과 출구는 각각 항상 하나만 존재한다. 입력의 끝은 LL, RR, CC가 모두 00인 줄로 표시되며, 이 줄은 처리하지 않는다.

출력

각 빌딩에 대해 한 줄씩 답을 출력한다. 탈출할 수 있다면 다음과 같이 출력한다.

Escaped in x minute(s).

여기서 x는 빌딩을 탈출하는 데 필요한 최단 시간(분)이다. 탈출이 불가능하다면 다음과 같이 출력한다.

Trapped!

예제1

  1. 예제 1

    입력
    3 4 5
    S....
    .###.
    .##..
    ###.#
    
    #####
    #####
    ##.##
    ##...
    
    #####
    #####
    #.###
    ####E
    
    1 3 3
    S##
    #E#
    ###
    
    0 0 0
    
    예상 출력
    Escaped in 11 minute(s).
    Trapped!