Python

DFS 구현하기

JAEJUNG 2021. 7. 24. 20:38

위와 같은 그래프를 DFS로 구현해보자.

 

인접행렬로 풀기

matrix = [
  [0,1,1,0,0,0,0,1],
  [1,0,0,0,0,0,1,0],
  [1,0,0,1,1,0,0,0],
  [0,0,1,0,1,0,0,0],
  [0,0,1,1,0,0,0,0],
  [0,0,0,0,0,0,1,0],
  [0,1,0,0,0,1,0,1],
  [1,0,0,0,0,0,1,0]
]
path = []
visit = [0]*20

def DFS(now):
  path.append(now+1)

  for i in range(8):
    if matrix[now][i] == 1 and visit[i] == 0:
      visit[i] = 1
      DFS(i)

visit[0] = 1
DFS(0)
print(path)
[1, 2, 7, 6, 8, 3, 4, 5]

'Python' 카테고리의 다른 글

'이것이 코딩테스트다'  (0) 2021.08.26
이진 탐색  (0) 2021.07.27
에라토스테네스의 체  (0) 2021.07.20
input()과 sys.stdin.readline()의 차이  (0) 2021.07.15