author
postNo
status
thumbnail
description
category
tags
createdAt
updatedAt
Graph 탐색 알고리즘
우선 graph의 탐색 알고리즘에는 크게 두 가지가 있다.
- 깊이 우선 탐색 (Depth First Search)
- 너비 우선 탐색 (Breadth First Search)
오늘은 두 번째인 너비 우선 탐색 알고리즘중에 가장 유명한 문제인 최단거리 찾기에 대해 설명해보고자 한다.
설명
주어지는 m x n 크기의 배열에서 시작점 0, 0에서부터 m-1, n-1 위치까지 가는 가장 짧은 거리의 비용을 출력하라.
배열에 표시된 값은 해당 칸으로 이동하기 위한 비용을 의미한다.
예제
<div style="width: 200px">
1 | 0 | 1 | 1 | 1 |
:---: | :---: | :---: | :---: | :---: |
1 | 0 | 1 | 0 | 1 |
1 | 10 | 1 | 8 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 | 1 |
</div>
답
17
설명

0, 0에서 이동가능한 위치는 여러개가 있지만 가장 최소 비용으로 이동할 수 있는 길은 빨간색으로 표시한 한 가지이다.
점선 파란색으로 표시된 길도 있긴 하지만 비용이 높아 빨간색으로 가는 것 보다 더 비싼 비용이 발생한다.
따라서 출발점(0,0)부터 도착점(m-1, n-1)까지 가는 최단 경로는 빨간색이며 비용은 17이다.
JavaScript 코드로 살펴보기
결론
- 똑같지는 않지만 프로그래머스에 비슷한 문제가 있음
- 코드에 대한 오류나 문의는 코멘트나 메일로 남겨주세요!