제목 그대로 DFS와 BFS를 수행한 결과를 출력하면 되는 문제인데,
인접정점이 오름차순으로 입력되지 않기 때문에 입력을 받은 후에 정렬을 한 번 해줘야 한다.
from collections import deque
n,m,v = map(int,input().split())
graph = [[]for i in range(n+1)]
visited = [False]*(n+1)
for i in range(m):
s,e = map(int,input().split())
graph[s].append(e)
graph[e].append(s)
for i in range(n+1):
graph[i].sort()
def dfs(graph, v, visited):
visited[v] = True
print(v,end=' ')
for i in graph[v]:
if not visited[i]:
dfs(graph,i,visited)
def bfs(graph, start, visited):
queue = deque()
queue.append(start)
visited[start] = True
while queue:
v = queue.popleft()
print(v, end=' ')
for i in graph[v]:
if not visited[i]:
queue.append(i)
visited[i] = True
dfs(graph, v, visited)
visited = [False]*(n+1)
print()
bfs(graph,v,visited)
'[BOJ] - Python' 카테고리의 다른 글
[백준] 2606 : 바이러스 python (0) | 2023.08.17 |
---|---|
[백준] 2178 : 미로 탐색 python (0) | 2023.08.17 |
[백준] 2798 : 블랙잭 python (0) | 2023.08.17 |
[백준] 11286 : 절댓값 힙 python (0) | 2023.08.17 |
[백준] 13305 : 주유소 python (0) | 2023.08.13 |