[알고리즘] DFS (깊이 우선탐색)이란
·
프로그래밍/algorithm
깊이 우선탐색 (Depth-Firtst Search) 깊이우선 탐색이란? 루트노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법이라고한다. 즉, 깊게 탐색, 완벽탐색 사용하는경우 모든 노드를 방문 하고자 하는 경우에 이방법을 선택한다. 특징 1. 자기자신을 호출하는 순환 알고리즘의 형태를 가지고있다. 2. 어떤 노드를 방문했었는지 여부를 반드시 검사해야한다. 원리 위의 그림을 보면서 아래 설명을 봐보자. 1. 시작 정점을 1로 설정 2. 1번 탐색 시작 1번과 연결되었고 방문 안한 정점이 어디지? 2번이 있네. 2번으로 가자. 3. 2번과 연결되었고, 방문 안한것? 3번이네. 3번으로 가자. 4. 3번은? 4번이 있네. 4번으로 가자. 5. 4번은? 없는데..?? 그러면 3번..