반응형
코드
def bfs(i):
queue = []
queue.append(i)
while queue:
num = queue.pop()
for a in graph[num]:
if visit[a] == 0:
visit[a] = 1
queue.append(a)
n,m = map(int,input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
u,v = map(int,input().split())
graph[u].append(v)
graph[v].append(u)
visit = [0]*(n+1)
cnt = 0
for i in range(1,n+1):
if visit[i] == 0:
cnt += 1
bfs(i)
print(cnt)
설명
graph에 연결 정보를 저장해둔다.
1부터 n까지 차례대로 for문을 돌려서 아직 방문하지 않았다면 cnt 값을 1 증가시키고 그 점을 기준으로 bfs를 수행한다.
반응형
'알고리즘 > 그래프 탐색' 카테고리의 다른 글
[백준][Python] 1697번 숨바꼭질 (0) | 2022.10.26 |
---|---|
[백준][Python] 4963번 섬의 개수 (0) | 2022.10.07 |
[백준][Python] 1012번 유기농 배추 (0) | 2022.10.05 |
[백준][Python] 2178번 미로 탐색 (0) | 2022.10.04 |
[백준][Python] 2667번 단지번호붙이기 (0) | 2022.09.22 |
댓글