-
알고리즘: 백준 1260번 DFS와 BFS (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 7. 17:44
import sys from collections import deque read = sys.stdin.readline n, m, v = list(map(int, read().split())) graph ={} for i in range(n): graph[i+1] = deque() for i in range(m): x, y = deque(map(int, read().split())) graph[x].append(y) graph[y].append(x) for i in range(n): graph[i+1]=sorted(graph[i+1]) def bfs(start): stack = deque([start]) visit = [] while stack: node = stack.popleft() if node not in visit: visit.append(node) for i in graph[node]: stack.append(i) return visit def dfs(start): stack = deque([start]) visit = [] while stack: node = stack.popleft() if node not in visit: visit.append(node) for i in graph[node][::-1]: stack.appendleft(i) return visit def pretty(list): for i in list: print(i, end=' ') pretty(dfs(v)) print() pretty(bfs(v))
반응형'알고리즘 > 백준(BaekJoon)' 카테고리의 다른 글
알고리즘: 백준 11724번 연결 요소의 개수 (feat.python) (0) 2021.01.08 알고리즘: 백준 1012번 유기농 배추 (feat. python) (0) 2021.01.07 알고리즘: 백준 7576번 토마토 (feat.python) (0) 2021.01.06 알고리즘: 백준 2606번 바이러스 (feat.python) (0) 2021.01.04 알고리즘: 백준 1015번 수열 정렬 (feat.python) (0) 2020.12.30