백준 11724(파이썬):연결 요소의 개수
백준 11724번 문제 정리글 입니다.
문제 출처-https://www.acmicpc.net/problem/11724
문제 내용
나의 풀이
import sys
n,m=map(int,sys.stdin.readline().split())
relation=[[]for i in range(n+1)]
visited=[0]*(n+1)
visited[0]=1
for i in range(m):
a,b=map(int,sys.stdin.readline().split())
relation[a].append(b)
relation[b].append(a)
for i in relation:
i.sort()
def bfs():
count=0
while sum(visited)<n+1:
v=visited.index(0)
queue=[v]
visited[v]=1
while queue:
v=queue.pop(0)
for i in relation[v]:
if visited[i]==0:
visited[i]=1
queue.append(i)
count+=1
return print(count)
bfs()
- 우선 BFS로 방문하지 않은 정점을 탐색해준다.
- 탐색 가능할 때까지 탐색 후, 다른 정점을 탐색해야하면 다시 탐색하고 아니면 끝내준다.
- 따라서, 이렇게 탐색가능할 때까지 BFS 탐색을 반복하여 찾은 연결요소의 개수를 출력해준다.
지난번에 BFS문제를 푼것이 도움이 많이 되었다…
풀이를 본 후
DFS로의 풀이도 존재했다…
해결한 후
DFS, BFS의 개념을 항상 잘 알고있어야 할것 같다. 또한, 연결요소의 개념을 다시한 번 확인해보는 시간이었다…