본문 바로가기

그래프2

DFS(깊이 우선 탐색) 알고리즘: 동작 원리와 Python 코드 구현 깊이 우선 탐색 (DFS)란?Depth-First Search (DFS)는 트리와 그래프 데이터 구조를 탐색하는 기본 알고리즘입니다. 각 경로를 가능한 한 깊게 탐색한 후 백트래킹하는 방식으로 동작하여 경로 찾기, 위상 정렬, 사이클 검출 등에 적합합니다.DFS 알고리즘 설명DFS는 재귀(암시적 호출 스택)나 명시적 스택 자료구조를 사용하여 구현할 수 있습니다. 핵심 아이디어는 다음과 같습니다:루트(또는 임의의 시작 노드)에서 시작합니다.노드를 방문하고 방문 표시합니다.방문하지 않은 인접 노드를 재귀적 또는 반복적으로 방문합니다.알고리즘 단계 (이진 트리 - 재귀)현재 노드를 방문합니다.왼쪽 서브트리를 재귀적으로 탐색합니다.오른쪽 서브트리를 재귀적으로 탐색합니다.알고리즘 단계 (일반 그래프 - 스택 기반.. 2025. 4. 29.
BFS(너비 우선 탐색) 알고리즘: 동작 원리와 Python 코드 구현 너비 우선 탐색 (Breadth-First Search)란?Breadth-First Search (BFS)는 현재 깊이 수준에 있는 모든 노드를 탐색한 후 다음 깊이 수준의 노드를 탐색하는 그래프 순회 알고리즘입니다. 가중치가 없는 그래프에서 최단 경로 문제를 해결하거나, 트리 탐색 및 연결 요소 분석 등에 널리 사용됩니다.BFS 알고리즘 설명BFS는 큐(queue) 자료구조를 사용하여 다음에 탐색할 노드를 추적합니다. 핵심 아이디어는 다음과 같습니다:시작 노드를 방문하고 큐에 추가합니다.큐가 비어있지 않은 동안:큐의 앞쪽에서 노드를 꺼냅니다.노드를 처리합니다 (예: 출력, 기록).방문하지 않은 모든 이웃 노드를 큐에 추가합니다.알고리즘 단계 (이진 트리)루트 노드를 시작으로 큐에 추가합니다.큐가 비어있.. 2025. 4. 29.