너비 우선 탐색(BFS)


깊이 우선 탐색(DFS)


구현


function DFS(node) {
  console.log(node.value);
  visited[node.value] = true;
  for (let i = 0; i < node.neighbors.length; i++) {
    if (!visited[node.neighbors[i].value]) {
      DFS(node.neighbors[i]);
    }
  }
}

const visited = {};
DFS(node);

역추적(backtracking)

모든 잠재적 솔루션을 점진적으로 탐색하고 현재 경로를 따라 솔루션을 더 이상 찾을 수 없을 때사용하는 알고리즘 입니다.(즉, 가장 최근 단계 실행 취소)

현재 상태에서 가능한 각 솔루션 경로를 탐색하기 위해 함수를 재귀적으로 호출하는 재귀 접근 방식을 사용합니다.

재귀의 각 단계에서 알고리즘은 현재 경로가 유효한 솔루션으로 이어지는지 여부를 결정합니다. 그렇다면 알고리즘은 경로를 따라 계속 진행하고, 그렇지 않으면 이전 단계로 되돌아가 다른 경로를 시도합니다. 알고리즘은 유효한 솔루션을 찾거나 가능한 모든 경로를 소진할 때까지 이러한 방식으로 계속됩니다.