728x90
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
# 방향 없는 그래프
G = [list() for _ in range(N + 1)]
visit = [1] + [0] * N
for _ in range(M):
u, v = map(int, input().split())
G[u].append(v)
G[v].append(u)
result = 0
for i in range(1, N + 1):
if visit[i]: continue
def dfs(start):
s = [start]
while s:
cur = s[-1]
# if visit[cur]: continue
visit[cur] = 1
for adj in G[cur]:
if visit[adj]: continue
s.append(adj)
break
else:
s.pop()
result += 1
dfs(i)
print(result)
기본을 묻는 문제이다.
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스] 다단계 칫솔 판매 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기) (0) | 2021.05.04 |
---|---|
[백준] 1074 Z python (0) | 2021.05.04 |
[백준] 11723 집합 C (0) | 2021.05.04 |
[백준] 11279 최대힙 python (0) | 2021.05.04 |
[백준] 9095 1, 2, 3 더하기 C python (0) | 2021.05.04 |