본문 바로가기
알고리즘/그래프 탐색

[백준][Python] 11724번 연결 요소의 개수

by 임짠짠 2022. 10. 6.
반응형
 

11724번: 연결 요소의 개수

첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주

www.acmicpc.net

 

 

코드

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를 수행한다.

반응형

댓글