1260. DFS와 BFS
문제 링크
문제 코드
from collections import deque
node, edge, start = list(map(int,input().split()))
dfs_visited =[0]*node
bfs_visited = [0]*node
graph = [[0 for col in range(node)]for row in range(node)]
for i in range(edge):
x,y = list(map(int,input().split()))
graph[x-1][y-1] = 1
graph[y-1][x-1] = 1
dfs_result = str(start)+" "
dfs_visited[start-1] = 1
def back_tracking(tmp):
global node,dfs_result
for i in range(node):
if graph[tmp][i] == 1 and dfs_visited[i] == 0:
dfs_visited[i] = 1
dfs_result += str(i+1) +" "
back_tracking(i)
back_tracking(start-1)
bfs_result = str(start)+" "
bfs_que = deque()
bfs_que.append(start-1)
bfs_visited[start-1] =1
while len(bfs_que)>0:
tmp = bfs_que.popleft()
for i in range(node):
if graph[tmp][i] == 1 and bfs_visited[i] ==0:
bfs_visited[i] = 1
bfs_result += str(i+1)+" "
bfs_que.append(i)
print(dfs_result)
print(bfs_result)
문제 풀이
- DFS와 BFS를 구현해서 푸는 간단한 문제
- DFS를 큐를 이용해 보려했으나 꼬임
- DFS는 백트래킹으로 하자
Author And Source
이 문제에 관하여(1260. DFS와 BFS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@youngjin_kim2/1260.-DFS와-BFS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)