일기

DFS

이준늬 2023. 1. 13. 18:13

DFS란?

깊이 우선 탐색( Depth-First Search ) : 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘.

방문 처리,  스택, 재귀 함수 이용

스택 : https://jun2ee22.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9D
그래프 자료구조 url

 

tip.1차원 배열이나 2차원 배열을 그래프 형태로 생각하면 수월함.


방문하지 않은 인접 노드가 없을 때까지 스택에 하나씩 삽입(방문 처리)
-> 스택의 최상단 노드에 인접 노드가 없으면 스택에서 pop()

더 이상 수행할 수 없을 때까지 반복

방문 순서: 1 -> 2 -> (2) -> 4 -> 3 -> 5 -> (5) -> (3) -> (4) -> (1)


ex) DFS

더보기
#DFS 함수 정의
def dfs(graph, v, visited):
    
    visited[v] = True
    print(v, end=' ')
    
    for i in graph[v]:
        if not visited[i]:
            dfs(graph, i, visited)
            
graph = [
    [],
    [2, 4],
    [1],
    [4, 5],
    [1, 3, 5],
    [3, 4]
]

visited = [False] * 6

dfs(graph, 1, visited)

이것이 코딩 테스트다 - 나동빈

정리하긔

 

'일기' 카테고리의 다른 글

자료구조, 자료형, 추상 자료형  (0) 2023.01.17
BFS  (0) 2023.01.13
  (0) 2023.01.12
스택  (0) 2023.01.12
[2023.01.05] 비밀 뻬거 일기  (2) 2023.01.05