반응형
백준 1260번 DFS와 BFS
DFS, BFS 탐색 알고리즘은 안보면 계속 까먹게 되네요..ㅎㅎㅎ
풀이
n, m, v = map(int, input().split())
import collections
matrix = [[0] * (n+1) for i in range(n+1)]
seen = [0] * (n+1)
for _ in range(m):
a, b = map(int, input().split())
matrix[a][b] = matrix[b][a]= 1
def dfs(v):
seen[v] = 1
print(v, end=' ')
for i in range(1, n+1):
if matrix[v][i] == 1 and seen[i] == 0:
dfs(i)
def bfs(v):
queue = collections.deque()
queue.append(v)
seen[v] = 1
while queue:
v = queue.popleft()
print(v, end=' ')
for i in range(1, n+1):
if matrix[v][i]==1 and seen[i] == 0:
queue.append(i)
seen[i]=1
dfs(v)
seen = [0] * (n+1)
print()
bfs(v)
반응형
'Python > 백준' 카테고리의 다른 글
[백준 파이썬] 9466번 텀 프로젝트 (0) | 2021.04.20 |
---|---|
[백준 파이썬] 1707번 이분 그래프 (0) | 2021.04.19 |
[백준 파이썬] 2150번 Strongly Connected Component (5) | 2021.04.18 |
[백준 파이썬] 2252번 줄 세우기 (0) | 2021.04.18 |
[백준 파이썬] 2606번 바이러스 (0) | 2021.04.13 |