RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00181

곡괭이로 벽 부수기

Gold IV 골드 IV
난이도
2s
시간 제한
256MB
메모리 제한
1
맞았습니다!!
1
제출 수
100.0%
정답률
레이팅

의견: 0

설명

\(R \times C\) 격자로 이루어진 던전이 있다. 각 칸은 빈 칸(.) 또는 벽(#)이다. 주인공은 왼쪽 위 칸 \((1, 1)\)에서 출발하여 오른쪽 아래 칸 \((R, C)\)의 출구로 가려 한다.

주인공은 상하좌우 인접한 칸으로 이동할 수 있다. 빈 칸으로 이동하는 데에는 비용이 들지 않지만, 벽이 있는 칸으로 이동하려면 그 벽을 부숴야 하며 이때 곡괭이 \(1\)가 든다(벽을 부수면 그 칸으로 들어갈 수 있다).

출발 칸과 출구 칸도 벽일 수 있는데, 그 칸이 벽이면 그 벽을 부수는 비용도 곡괭이 \(1\)개로 센다. \((1,1)\)에서 \((R,C)\)까지 가는 데 필요한 곡괭이의 최소 개수(부숴야 하는 벽의 최소 개수)를 구하여라.

격자는 사방이 막혀 있지 않으며, 모든 칸은 (벽을 충분히 부수면) 서로 도달 가능하므로 답은 항상 존재한다.

제약
  • \(1 \le R, C \le 500\)
입력 형식

첫째 줄에 격자의 크기 \(R\ C\)가 주어진다.

다음 \(R\)개의 줄에 각각 길이 \(C\)의 문자열이 주어지며, .은 빈 칸, #은 벽을 나타낸다.

출력 형식

\((1,1)\)에서 \((R,C)\)까지 가기 위해 부숴야 하는 벽의 최소 개수를 출력한다.

예제 1
입력
3 3
..#
##.
#..
출력
1
설명

\((1,1)\to(1,2)\)는 빈 칸. 이후 출구로 가려면 벽을 최소 \(1\)개 부수면 된다.

예제 2
입력
1 1
#
출력
1
설명

출발 칸이자 출구 칸이 벽이므로 그 벽 \(1\)개를 부숴야 한다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

곡괭이로 벽 부수기

개요
출제자 난이도 Gold IV 골드 IV 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

곡괭이로 벽 부수기

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8