728x90
반응형
https://www.acmicpc.net/problem/11724
Python
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
def di(start):
now = start
used = [0]*(n+1)
for _ in range(n):
visit[now] = 1
used[now] = 1
for x in graph[now]:
visit[x] = 1
old_now = now
for i in range(1, n+1):
if used[i] == 0 and visit[i] == 1:
now = i
if old_now == now:
break
ans = 0
visit = [0]*(n+1)
for i in range(1, n+1):
if visit[i] == 0:
di(i)
ans += 1
print(ans)
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[카카오_인턴][Python] 불량 사용자 - DFS/정규식 (0) | 2021.09.17 |
---|---|
[백준][Python] 19538번 루머 - 그래프,BFS (0) | 2021.09.17 |
[백준][Python] 2597번 계단 오르기 - DP (0) | 2021.09.03 |
[백준][Python] 11729번 하노이탑 이동 순서 - 재귀(하노이탑) (0) | 2021.08.31 |
[백준][Python] 색종이 만들기 - 재귀(분할정복) (0) | 2021.08.31 |