[JavaScript] 깊이 우선 탐색, DFS(Depth-First Search)
·
Development Study/Algorithm
DFS, Depth-First Search라고 불리는 이 깊이 우선 탐색은 대표적으로 많이 사용되는 알고리즘 중 하나 입니다. 이 글에서는 어떤 상황에서 BFS를 사용하며, 어떤 코드에서 사용되고 있는 지 알아보도록 하겠습니다. 깊이 우선 탐색(DFS)란 무엇일까? 깊이 우선 탐색(Depth-First Search)은 그래프나 트리와 같은 자료 구조에서 노드를 탐색하는 알고리즘 중 하나입니다. DFS는 시작 노드에서 출발하여 깊이를 우선으로 하여 노드들을 방문하는 방식으로, 한 경로의 최대 깊이까지 도달한 후 다시 이전 노드로 돌아와 미방문 인접 노드를 방문하는 방식으로 진행됩니다. DFS는 다음과 같은 순서로 실행됩니다 시작 노드를 방문합니다. 방문한 노드를 기준으로 인접한 미방문 노드가 있으면 그 노..
[JavaScript] 너비 우선 탐색, BFS(Breadth-First Search)
·
Development Study/Algorithm
BFS, Breadth-First Search라고 불리는 이 너비 우선 탐색은 대표적으로 많이 사용되는 알고리즘 중하나입니다. 이 글에서는 어떤 상황에서 BFS를 사용하며, 어떤 코드에서 사용되고 있는 지 알아보도록 하겠습니다. 너비 우선 탐색(BFS)란 무엇일까? 너비 우선 탐색(Breadth-First Search, BFS)은 그래프와 트리에서 사용되는 탐색 알고리즘 중 하나로, 루트 노드로부터 시작해서 인접한 노드를 먼저 방문하고, 그 다음에 인접한 노드들의 인접한 노드들을 방문하는 식으로 레벨 순서대로 진행하는 방식입니다. BFS는 주로 최단 경로를 찾거나, 두 노드 간의 경로가 있는지 여부를 확인하는 데 사용됩니다. BFS 알고리즘은 다음과 같은 순서로 수행됩니다. 시작 노드를 큐(Queue)에..