BOJ 17391 무한부스터
BOJ 17391 무한부스터
문제 내용
행 열의 사각 격자의 각 칸에 양의 정수 가 쓰여 있습니다.
당신은 1행 1열에서 시작하여 최소한의 이동으로 행 열에 도달해야 합니다.
당신은 다음과 같은 행동을 할 수 있습니다.
- 현재 있는 칸이 행 열이고, 그 칸에 쓰여 있는 수가 이면, 1 이상 이하의 정수 거리만큼 오른쪽으로 이동하거나, 1 이상 이하의 정수 거리만큼 아래로 이동할 수 있습니다. 이때 격자 밖으로는 이동할 수 없습니다.
이때 최소 이동 횟수를 구하세요.
입력
첫 번째 줄에는 과 이 주어집니다. (, )
다음 줄부터 줄에 걸쳐서, 각 줄에 개의 정수 가 주어집니다. ()
출력
최소 이동 횟수를 출력합니다.
문제 풀이
스포일러
BFS 풀이
이 문제를 그래프로 모델링하면, 각 칸에서 바로 이동 가능한 다른 모든 칸으로 간선을 이은 것으로 생각할 수 있습니다. 이때의 간선 개수는 최대 개 정도가 되므로, BFS를 하여 최단 거리를 구할 수 있습니다.
DP 풀이
이 문제의 그래프는 DAG입니다. 따라서, 왼쪽 위에서 오른쪽 아래 순으로 보면서 각 칸의 최단 거리를 확정할 수 있습니다.
Last updated on