문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

8039 : 미로 탐색

•시간제한: 2.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

8039 : 미로 탐색

시간 2.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

$N \times M$ 크기의 미로가 주어집니다. 각 칸은 벽(#), 통로(.), 출발점(A), 도착점(B) 중 하나입니다.
출발점 A에서 출발하여 도착점 B에 도달하는 최단 경로를 구하고자 합니다. 이동 방향은 상하좌우로만 가능합니다.



[제약 조건]
• $1 \le N, M \le 1{,}000$
• 시작점 A와 도착점 B가 격자 내에 주어집니다.

입력 설명

첫째 줄에 미로의 세로 크기 $N$과 가로 크기 $M$이 공백으로 구분되어 주어집니다. ($1 \le N, M \le 1000$)
다음 $N$개의 줄에 각각 $M$개의 문자로 미로 정보가 주어집니다.

출력 설명

도착점 B에 도달할 수 있는 경로가 존재한다면:
첫째 줄에 YES를 출력합니다.
둘째 줄에 최단 경로의 길이(이동 횟수)를 출력합니다.
셋째 줄에 이동 경로를 나타내는 문자열(L, R, U, D로 구성)을 출력합니다.
만약 도착점에 도달할 수 없다면 NO를 출력합니다.

입력 예시
COPY
복사되었습니다!

5 8
########
#A#...##
#.#.#.B#
#......#
########

출력 예시
COPY
복사되었습니다!

YES
9
LDDRRRRRU

도움

가중치가 1인 격자 그래프에서의 최단 경로는 너비 우선 탐색(BFS)을 통해 보장됩니다.
탐색 시 각 정점을 큐에 넣으며 방문 표시를 하고, 이전 정점 정보(parent)와 이동 방향을 기록합니다. 도착점 B에 도달하면 역추적하여 최단 경로 문자열을 구성합니다. 큐에 원소를 넣는 시점에 바로 방문 처리를 해야 중복 삽입으로 인한 런타임 타임아웃을 막을 수 있습니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘