Algorithm 2

[PS] BFS 개념 및 파이썬 코드

그래프는 노드(Node) 와 간선(Edge)로 표현되며 노드를 정점(Vertex) 라고 말한다. 그래프 탐색은 하나의 노드를 시작으로 모든 노드를 방문하는 것을 말하고, 두 노드가 간선으로 연결 되어 있다면, 두 노드는 인접(Adjacent)하다고 한다.너비 우선 탐색(BFS)너비 우선 탐색은 Breadth First Search 로 루트 노드에서 시작하여 인접한 노드를 먼저 탐색하는 방법이다. BFS 에서 노드 탐색 순서는 아래와 같다.이름에서도 알 수 있듯이 깊이가 얕은 노드부터 모두 탐색한뒤 깊이가 깊은 노드를 탐색하는 방법이다.특징- 두 노드 사이의 최단경로(Shortest Path)를 탐색할 때 활용하기 좋은 방식이다.- 선입선출의 특징을 가지고 있는 자료구조인 큐를 활용하여 탐색할 노드의 순서..

Algorithm 2025.03.19

[PS] DFS 개념 및 파이썬 코드

그래프는 노드(Node) 와 간선(Edge)로 표현되며 노드를 정점(Vertex) 라고 말한다. 그래프 탐색은 하나의 노드를 시작으로 모든 노드를 방문하는 것을 말하고, 두 노드가 간선으로 연결 되어 있다면, 두 노드는 인접(Adjacent)하다고 한다.깊이 우선 탐색(DFS)깊이 우선 탐색은 Depth First Search 로 루트 노드에서 시작하여 다음 branch 로 넘어가기 전에 해당 branch를 완벽하게 탐색하는 방법이다. DFS 에서 노드 탐색 순서는 아래와 같다.특징- 모든 노드를 탐색해야 할 때 활용하기 좋은 방식이다.- BFS(깊이 우선 탐색) 보다 간단하지만 속도가 느리다.구현 알고리즘1. 루트노드에서 탐색을 시작한다.2. 현재 노드에서 인접하고 방문하지 않은 노드를 방문한다.3. ..

Algorithm 2025.03.18