이숭간 공부기록
백준 11724번 파이썬 _ 연결요소의 개수 (실버2) 본문
728x90
- 문제유형 : 그래프, DFS/BFS
- 문제풀이 :
- 그래프에서 연결된 리스트 (덩어리)의 개수를 찾는문제이므로 DFS/BFS를 통해 그래프를 탐색한다.
- dfs함수는 시작노드에서부터 연결된 노드들로 재귀적으로 호출되며 더이상 방문할 노드가 없을때 리턴된다.
- 따라서 전체 노드를 순회하며 아직 방문 전일때, 해당 노드를 시작노드로 하여 DFS함수를 실행하면 된다
- 정답코드
import sys
sys.setrecursionlimit(10**7)
input = sys.stdin.readline
n,m = map(int, input().split())
graph = [[] for _ in range(n+1)]
visited = [False] * (n+1)
for _ in range(m):
a,b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
def dfs(start, visited):
visited[start] = True
for i in graph[start]: #start와 인접한 노드
if visited[i] == False:
dfs(i, visited)
count = 0
for i in range(1,n+1):
if visited[i] == False:
count+=1
dfs(i, visited)
print(count)
'알고리즘 > 백준' 카테고리의 다른 글
백준 3190번 파이썬 _ 뱀 (삼성sw기출) (0) | 2021.03.31 |
---|---|
백준 1931번 파이썬 _ 회의실 배정 (실버2) (0) | 2021.03.25 |
백준 7576번 파이썬 _ 토마토 (실버1) (0) | 2021.03.24 |
백준 7662번 파이썬 _ 이중 우선순위 큐 (0) | 2021.03.22 |
백준 1753번 파이썬 _ 최단경로 (골드5) (0) | 2021.03.20 |