๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/DFS,BFS

dfs, bfs ํŒŒ์ด์ฌ ๊ตฌํ˜„

by syLim___ 2023. 2. 23.
728x90

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=[
  [], #์ธ๋ฑ์Šค 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)

bfs

from collections import deque

def bfs(graph, v, visited):
  q=deque([v]) #ํ ์ƒ์„ฑ
  visited[v]=True #๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ
  while q: #ํ๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์€๋™์•ˆ
    w = q.popleft() #ํ์˜ front๋ฅผ w์— ์ €์žฅํ•˜๊ณ  pop
    print(w,end=' ')
    for i in graph[w]:
      if not visited[i]:
        q.append(i)
        visited[i]=True
    
graph=[
  [], #์ธ๋ฑ์Šค 0์€ ๋น„์›Œ๋‘  (์•ˆ์“ธ๊ฑฐ๋‹ˆ๊นŒ)
  [2,3,8],
  [1,7],
  [1,4,5],
  [3,5],
  [3,4],
  [7],
  [2,6,8],
  [1,7]
]
visited = [False]*9

bfs(graph,1,visited)
728x90