깊이우선 탐색(depth first search) 기반 최단 거리 예제 풀이

Program Lang./Algorithm 2017. 5. 31. 10:06

1. 목적

공부한 내용 다음에 다시 복습하기 위해서 여기에 정리. 알고리즘 동작 원리는 설명은 생략.

여기 (http://blog.eairship.kr/268) 블로그에 정리된 내용 중에 최단 거리 탐색 문제를 내 나름되로 짜 봤다.


2. 코드 설명

깊이 우선 탐색 기반은 Stack 기반이고, 기존에 방문한 Node에 대해서 원하는 답을 얻지 못할 경우 다시 현재 Node 전의 Node로 이동해야 하는데 이 때 현재 Node 탐색에 사용된 중간 결과는 모두 원래되로 돌려줘야 한다. Back Tracking 기반이라는 의미로 해석된다. 흔히 운영체제나 이런 곳에서 Stack 되감기 이런 말을 들을 수 있는데 이 문제에서 많은 영감을 얻을 수 있다.



3. 실행 결과

결론적으로 두 가지 Path로 종점에 도달하였고, 그 중 최소값을 선택하는 문제이다.


end of loop .. distance : 16 
end of loop .. distance : 12 

최단거리 : 12 


: