728x90
### DFS(깊이 우선 탐색) 함수 구현하기 (5줄짜리 코드)
def dfs(graph, v, visited): #그래프의 인접리스트, 시작점, visited 리스트 순
visited[v] = True #방문 표시 후 해당 위치 출력
print(v, end=" ")
for k in graph[v]: #해당 노드의 인접노드들 하나씩 체크
if not visited[k]: #방문을 안했다면 dfs 함수를 재귀적으로 적용
dfs(graph,k,visited)
# 사용 예시 :: 먼저 인접 리스트를 정의하고 visited 리스트를 만든후에 dfs 함수에 대입.
graph = [ #인접 리스트
[], #편의상 0인 노드 있다고 가정
[2,3,8],
[1,7],
[1,4,5],
[3,5],
[3,4],
[7],
[2,6,8],
[1,7]
]
visited = [False] * 9
dfs(graph,1,visited) # 탐색하면서 순차적으로 출력
#시간 복잡도 : O(N)
'프로그래밍 & 알고리즘 & IT > 알고리즘(python)' 카테고리의 다른 글
[나동빈 코딩테스트] DFS 문제 (얼음과자 만들기) (0) | 2023.08.12 |
---|---|
[백준 시뮬레이션 문제 3190] 뱀 (0) | 2023.06.14 |
[백준 구현 문제 10871] X보다 작은 수 (0) | 2023.06.08 |
[백준 시뮬레이션 문제 14503] 로봇 청소기 (0) | 2023.06.08 |
[백준 구현문제 10773] 제로 (0) | 2023.06.06 |