반응형
from sys import stdin
n,m = map(int,stdin.readline().split())
matrix = [[0]*(n+1) for _ in range(n+1)]
for i in range(m):
a,b = map(int,stdin.readline().split())
matrix[a].append(b)
matrix[b].append(a)
visited = [0]*(n+1)
def bfs(v):
queue = [v]
while queue:
v = queue.pop(0)
for i in matrix[v]:
if visited[i] == 0:
queue.append(i)
visited[i] = 1
answer = 0
for i in range(1,n+1):
if visited[i] == 0:
bfs(i)
answer += 1
print(answer)
덩어리 구하기(?)같은 문제였다.
for i in range(1,n+1):
if visited[i] == 0:
bfs(i)
answer += 1
이 부분을 유의깊게 보고 생각해야겠다.
계속 풀다보니까 bfs,dfs을 조금 알게되어간다.
근데 아직 활용하는 부분이 약한 것 같다.
완전히 이해하게 된다면 활용도 잘할 수 있겠지??^^
반응형
'알고리즘 > dfs,bfs' 카테고리의 다른 글
[파이썬🐍] 백준 10026 : 적록색약 (0) | 2021.04.10 |
---|---|
[파이썬🐍] 백준 2583 : 영역 구하기 (0) | 2021.04.09 |
[파이썬🐍] 백준 2606 : 바이러스 (0) | 2021.04.08 |
[파이썬🐍] 백준 2667 : 단지 번호 붙이기 (0) | 2021.04.07 |
[파이썬🐍] 백준 2178 : 미로 탐색 (0) | 2021.04.07 |
댓글