Crazy_aRcade_Good

면접 대비

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

요약
폭탄이 놓인 10x10 격자와 시작 위치가 주어질 때, 어떤 폭탄과도 같은 행이나 열에 있지 않은 칸까지 가는 최소 이동 횟수를 구한다.
난이도

보통10점 중 5점

유형
BFS, 그래프, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

크레이지 아케이드를 하면서 폭탄을 피하려고 한다. 게임을 하는 곳은 10×10 크기의 배열로 나타낼 수 있고, 폭탄이 있는 칸은 o, 없는 칸은 x로 나타낸다. 폭탄이 터질 때, 폭탄과 같은 행 또는 같은 열에 있다면 물방울에 갇히게 된다.

예를 들어, 아래와 같은 배열에서 폭탄이 터지게 되면, (4,3)에 있어야 물방울에 갇히는 것을 피할 수 있다.

x x x o
o x x x
x o x x
x x x x

위치와 게임판이 주어졌을 때, 물방울에 갇히지 않기 위해 움직여야 할 최소 이동 횟수를 구해보자. 한 번에 한 칸 가로 또는 세로로 이동할 수 있다. 폭탄 위를 지나갈 수 있으며, 움직이지 않아도 된다면 0을 출력한다.

입력

첫째 줄에 플레이어의 위치 (r, c)가 주어진다. 배열의 가장 윗 행은 1번 행, 가장 왼쪽 열은 1번 열이다. 둘째 줄부터 10개의 줄에 걸쳐서 게임판의 상태가 주어진다. 물방울에 갇히지 않는 경우만 입력으로 주어진다.

출력

첫째 줄에 최소 이동 횟수를 출력한다.

예제1

  1. 예제 1

    입력
    1 1
    xxxxxxxxxo
    xoxxxxxxxx
    xxoxxxxxxx
    xxxxxxoxxx
    xxxxxxxxxx
    xxxoxxxxxx
    xxxxxxxxxx
    oxxxxxxxxx
    xxxxxxxxxx
    xxxxxxxxxx
    
    예상 출력
    8