코딩테스트/백준
[파이썬]1260_DFSBFS_S2
sunNprize
2022. 4. 7. 16:01
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() ..