728x90
    
    
  반응형
    
    
    
  import sys
sys.setrecursionlimit(10000000)
n, m = map(int,sys.stdin.readline().split())
graph = [ [] for i in range(n+1) ]
for i in range(m):
  start, end = map(int,sys.stdin.readline().split())
  graph[start].append(end)
  graph[end].append(start)
visited = [False] * (n+1) 
def dfs ( graph, v,visited):
    visited[v] = True
    for i in graph[v]:
        if not visited[i]:
            dfs( graph, i, visited)
cnt = 0 
for i in range(1,n+1):
  if not visited[i] :
    cnt += 1 
    dfs( graph, i, visited)
print(cnt)그냥 아주 기초적인 bfs 풀이와 유사하다.
프로그래머스의 네트워크 문제와 비슷한 것 같다.
다만, 런타임 에러가 난다면 입력 할 때 sys를 import한 다음 아래 식을 사용해서 입력 받는다.
import sys
sys.setrecursionlimit(10000000)
n, m = map(int,sys.stdin.readline().split())
728x90
    
    
  반응형
    
    
    
  '백준 > DFS_BFS' 카테고리의 다른 글
| # 2468번: 안전 영역 (0) | 2020.10.12 | 
|---|---|
| # 4963번: 섬의 개수 (0) | 2020.10.12 | 
| # 1260번: DFS와 BFS (0) | 2020.10.11 | 
| 깊이/너비 우선 탐색(DFS/BFS)-여행경로* (0) | 2020.10.11 | 
| # 2178 미로 탐색 (0) | 2020.10.05 |