스케이트
면접 대비시간 제한1초메모리 제한1024 MB
스케이터가 장애물에 부딪힐 때만 좌회전이나 우회전을 하면서 격자의 동쪽 가장자리로 나가는 데 필요한 최소 회전 수를 구합니다.
문제
나탈리는 새 스케이트를 샀고, 동네 스케이트장에서 한번 타 보기로 했다. 스케이트장은 직사각형이고, 빙판 위에 장애물이 여러 개 놓여 있다. 나탈리는 스케이트장의 서쪽에 있고, 동쪽으로 건너가려 한다.
나탈리는 스케이트를 잘 타지 못한다. 입구로 빙판에 들어서면 장애물에 부딪히기 전까지는 방향을 바꿀 수 없다. 첫 번째 장애물에 부딪히면 왼쪽이나 오른쪽으로 돌고, 그 방향으로 계속 직진한다. 이후에도 같은 방식으로 진행한다. 나탈리는 장애물에 부딪힐 때마다 반드시 왼쪽 또는 오른쪽으로 90도 회전하며, 장애물에 부딪힌 경우에만 방향을 바꿀 수 있다.
나탈리는 이동을 최대한 단순하게 하고 싶어 한다. 오른쪽(동쪽)으로 빙판을 빠져나오기까지 필요한 회전 횟수의 최솟값은 얼마인가? 나탈리는 항상 왼쪽 위 칸으로 빙판에 들어가며, 처음에는 동쪽(오른쪽)으로 스케이트를 탄다.
첫 번째 줄에 정수 과 가 공백으로 구분되어 주어진다.
다음 개의 줄에는 각각 개의 문자가 주어지며, 각 문자는 스케이트장의 칸을 나타낸다. '.'은 빈 칸이고, '#'은 장애물이 있는 칸이다.
나탈리가 스케이트장의 오른쪽으로 빠져나오면 목표를 달성한다. 위, 아래, 왼쪽 중 다른 쪽으로 빠져나가면 실패한다. 나탈리는 항상 칸 에서 출발해 오른쪽으로 스케이트를 탄다.
출력
나탈리가 오른쪽 빙판 밖으로 나가기까지 필요한 최소 회전 횟수를 한 줄에 정수 하나로 출력한다. 해가 존재함은 보장된다.
제한
힌트
세 번째 예제(Sample Input 3)에서 나탈리는 먼저 동쪽으로 첫 번째 장애물까지 스케이트를 탄다. 오른쪽으로 돌아 아래쪽으로 내려간다. 다시 오른쪽으로 돌아 서쪽으로 가고, 빙판의 동쪽 가장자리에 닿기 전까지 오른쪽으로 두 번 더 돈다. 총 네 번 회전하므로 답은 4이다.