Python 깊이 우선 탐색 DFS
DFS는 재귀 또는 명시적 스택을 사용합니다.
깊이 우선 탐색 DFS이란?
DFS는 재귀 또는 명시적 스택을 사용합니다.
되돌아오기 전에 한 경로를 깊게 탐색합니다.
언제 사용하나요?
- 알고리즘과 자료 구조를 이해합니다.
- 각 단계와 경계 조건을 확인합니다.
- 실행 시간과 메모리 사용량을 비교합니다.
Python 깊이 우선 탐색 DFS 시각화
O(V+E)재생 또는 한 단계를 눌러 비교와 데이터 이동 과정을 확인하세요.
예제 코드
main.py
graph = {"A": ["B", "C"], "B": ["D"], "C": ["E"], "D": [], "E": []}
def depth_first(node, visited=None):
visited = visited or set()
visited.add(node)
order = [node]
for neighbor in graph[node]:
if neighbor not in visited:
order.extend(depth_first(neighbor, visited))
return order
print(depth_first("A"))
예상 출력
['A', 'B', 'D', 'C', 'E']
작동 원리
각 정점과 간선을 최대 한 번 처리해 O(V+E)입니다.
값을 변경하고 Python 설치 없이 CodeUtility 온라인 Python 컴파일러에서 실행하세요.
연습 문제
입력값과 경계 조건을 바꾸고 더 큰 데이터에서도 동작을 확인하세요.
- 빈 입력, 한 요소, 중복값을 시험하세요.
- 각 단계의 상태를 출력하세요.
- 다른 풀이와 성능을 비교하세요.