깊이 우선 탐색(DFS) 구현 방법
1. 스택 사용
- DFS는 스택을 사용하여 이미 방문한 노드를 추적합니다. 재귀 호출을 사용하여 스택 구현을 내재화할 수 있습니다.
스택 사용 예시
def dfs(graph, start, visited=[]):
if start not in visited:
visited.append(start)
for next in graph[start]:
if next not in visited:
dfs(graph, next, visited)
return visited
2. 재귀적 탐색
- 현재 노드에서 방문하지 않은 인접 노드를 찾아 계속해서 탐색을 진행합니다.
재귀적 탐색 예시
for next in graph[start]:
if next not in visited:
dfs(graph, next, visited)