만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

빠른 숫자 탐색

면접 대비

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

요약
5 x 5 격자에서 -1 칸을 피해 시작 칸부터 1이 적힌 칸까지 가는 최소 이동 횟수를 구합니다. 도달할 수 없으면 -1을 출력합니다.
난이도

쉬움10점 중 3점

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

문제

5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 각 격자에는 -1, 0, 1 중 하나의 숫자가 적혀 있다. 격자의 위치는 (r,c)(r, c)로 나타낸다. rr은 행 번호, cc는 열 번호이다. 행 번호는 맨 위가 0이고 아래 방향으로 1씩 증가한다. 열 번호는 맨 왼쪽이 0이고 오른쪽 방향으로 1씩 증가한다. 따라서 맨 왼쪽 위 칸은 (0, 0), 맨 아래 오른쪽 칸은 (4, 4)이다. -1이 적힌 칸으로는 이동할 수 없고, 0이나 1이 적힌 칸으로는 이동할 수 있다.

학생이 (r,c)(r, c) 위치에 있다. 한 번의 이동으로 상, 하, 좌, 우 중 한 방향으로 한 칸 이동할 수 있다. 학생이 (r,c)(r, c)에서 출발하여 1이 적힌 칸에 도착하는 데 필요한 최소 이동 횟수를 구한다.

보드에는 1이 적힌 격자가 1개 주어진다.

입력

첫 번째 줄부터 다섯 개의 줄에 걸쳐 보드의 정보가 순서대로 주어진다. ii번째 줄의 jj번째 숫자는 보드의 (i−1)(i-1)번째 행, (j−1)(j-1)번째 열의 정보를 나타낸다. 보드의 정보는 -1, 0, 1 중 하나이다.

다음 줄에 학생의 현재 위치 rr, cc가 빈칸을 사이에 두고 순서대로 주어진다.

출력

학생이 현재 위치 (r,c)(r, c)에서 1이 적힌 칸에 도착하기 위한 최소 이동 횟수를 출력한다. 현재 위치 (r,c)(r, c)에서 1이 적힌 칸으로 이동할 수 없는 경우 -1을 출력한다.

제한

  • 0≤r,c≤40 \le r, c \le 4
  • 학생의 현재 위치 (r,c)(r, c)에는 0이 적혀 있다.
  • 1이 적혀 있는 격자가 1개 주어진다.

예제2

  1. 예제 1

    입력
    0 0 1 0 0
    0 0 -1 0 0
    0 0 0 0 0
    0 0 -1 0 0
    0 0 0 -1 0
    1 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    0 0 -1 0 0
    0 0 -1 0 0
    0 0 -1 0 0
    0 0 -1 0 0
    0 0 -1 0 1
    1 1
    
    예상 출력
    -1