<원리>
- 현재 노드와 연결된 자식 노드를 확인한 후, 곧바로 현재 노드 위치를 선택된 다음 자식의 노드로 변경한다.
- 자식 노드에서 원하는 결과를 찾지 못할 때 돌아올 수 있도록 현재 노드 위치를 스택(Stack)을 사용하여 기억해야 한다.
=> 재귀함수로 구현 - 이때, 이전의 부모노드로 돌아오는 과정을 백트래킹(Back-Tracking)이라고 한다.
<장점>
- 단지 현 경로상의 노드들만을 기억하면 되므로 저장공간의 수요가 비교적 적다.
=> 그래프의 높이 만큼의 공간만을 요구 - 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있다.
<단점>
- 해가 없는 경로에 깊이 빠질 가능성이 있다.
- 얻어진 해가 최단 경로가 된다는 보장이 없다.(경로가 여러개인 경우)
