티스토리 뷰

from collections import deque

n, m, v = map(int, input().split())
graph = [[0 for i in range(n + 1)] for j in range(n + 1)]
visited_d = [0] * (n + 1)
visited_b = [0] * (n + 1)

for i in range(m):
      line = list(map(int, input().split()))
      graph[line[0]][line[1]] = 1
      graph[line[1]][line[0]] = 1


def dfs(graph, v, visited_d):
      visited_d[v] = 1
      print(v, end=" ")
      for i in range(len(graph[v])):
            if visited_d[i] != 1 and graph[v][i] == 1:
                  dfs(graph, i, visited_d)


def bfs(graph, v, visited_b):
      visited_b[v] = 1
      queue = deque([v])
      
      while queue:
            v = queue.popleft()
            print(v, end=" ")
            
            for i in range(len(graph[v])):
                  if visited_b[i] != 1 and graph[v][i] == 1:
                        queue.append(i)
                        visited_b[i] = 1


dfs(graph, v, visited_d)
print()
bfs(graph, v, visited_b)

- DFS >> visited활용 스택개념

-BFS - dequeue() 로 큐에 값을 담아서 해당 값을 popleft() ..

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함