아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

얼음 미로

면접 대비

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

요약
바위에 부딪힐 때까지 미끄러지는 얼음 미로에서, 시작 칸과 출구 칸의 미끌 시간은 제외하고 지나가는 빙판의 미끌 시간을 더해 출구까지의 최단 시간을 구한다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 동적 계획법, 시뮬레이션
정답자
아직 제출이 없습니다

문제

탐험가 테라는 얼음 미로에 갇혔다. 얼음 미로의 바닥은 빙판으로 되어 있어 발을 내디디면 바위에 부딪힐 때까지 미끄러진다. 예를 들어, 위 그림에서 테라가 왼쪽 방향으로 이동한다면 중간에 멈출 수 없고 왼쪽 바위에 부딪힐 때까지 미끄러진다. 얼음 미로 바깥은 절벽이기 때문에 빠지면 탈출할 수 없다.

얼음 미로에는 44가지 오브젝트가 있다.

  1.   테라 : 얼음 미로에 갇힌 탐험가. 상하좌우 44방향으로 이동할 수 있다. 얼음 미로에 단 11명의 테라만 존재한다. 테라가 최초 위치한 빙판의 미끌 시간은 00이다.
  2.   바위 : 통과할 수 없다. 미끄러지다 부딪히면 앞에서 멈춘다.
  3.   구멍 : 이곳에 빠지면 영영 탈출할 수 없다.
  4.   출구 : 이곳에 방문하는 즉시 얼음 미로를 탈출한다. 얼음 미로에 단 11개의 출구만 존재한다.

어떤 빙판 위에서 미끄러지는 데 걸리는 시간을 미끌 시간이라고 하자. 각 빙판마다 미끌 시간은 다를 수 있다.

테라가 어느 한쪽 방향으로 이동할 때, 테라가 미끄러지는 동안 위치한 빙판의 미끌 시간을 더하면 이동 시간을 구할 수 있다. 단, 이동 시간 계산과 관련하여 두 가지 규칙이 있다.

  • 테라가 어느 한쪽 방향으로 이동을 시작할 때, 시작 빙판의 미끌 시간은 포함하지 않는다.
  • 테라가 출구로 들어갈 때, 출구 빙판의 미끌 시간은 포함하지 않는다.

위 그림에서 테라가 위로 이동할 때의 이동 시간을 계산하자. 테라가 현재 서 있는, 시작 빙판의 미끌 시간 44와 출구 빙판의 미끌 시간 00을 제외하면 1+2=31 + 2 = 3 만큼의 시간이 걸린 뒤 출구를 통해 탈출함을 알 수 있다.

저체온증이 시작된 테라는 얼음 미로를 가능한 한 빨리 탈출하고 싶다. 얼음 미로를 탈출하는 데 걸리는 최단 시간을 계산하자.

입력

첫 번째 줄에는 얼음 미로의 가로 크기를 나타내는 정수 WW(2≤W≤5002 \le W \le 500), 세로 크기를 나타내는 정수 HH(2≤H ≤5002 \le H \le 500)가 주어진다.

두 번째 줄부터 HH개의 줄에 걸쳐 얼음 미로에 대한 정보가 주어진다.

테라는 T, 바위는 R, 구멍은 H, 출구는 E로 나타낸다.

빙판의 미끌 시간 tt는 00 이상 99 이하의 정수로 나타낸다.

출력

얼음 미로를 탈출할 수 있다면 최단 탈출 시간을 출력한다.

얼음 미로를 탈출할 수 없다면 -1을 출력한다.

예제4

  1. 예제 1

    입력
    5 5
    2E115
    32411
    11313
    R42TH
    124R6
    
    예상 출력
    9
    
  2. 예제 2

    입력
    4 5
    11R1
    1E1R
    1911
    1911
    1T1R
    
    예상 출력
    4
    
  3. 예제 3

    입력
    3 3
    111
    TRE
    111
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    5 5
    TRRRR
    1R11R
    1RE1R
    1111R
    RRRRR
    
    예상 출력
    9