반응형
무방향 그래프를 일방향 그래프로 오해해서 삽질하고 있었다.
문제는 구름 알고리즘에서 풀었던 모래섬 문제처럼 덩어리 확인하는 문제였다.
따라서 dfs로 쭈욱 노드들을 순회하면서 visit값을 갱신하고,
visit값이 False인 노드들을 만날때마다 rst+=1을 해주면서 순회를 반복했다.
import sys
input = sys.stdin.readline
sys.setrecursionlimit(123456)
node,edge = map(int,input().split())
def find(num):
for next in graph[num]:
if not visit[next]:
visit[next]=1
find(next)
rst = 0
graph = [[] for i in range(node+1)]
visit = [0 for i in range(node+1)]
for i in range(edge):
fst,scd = map(int,input().split())
graph[fst].append(scd)
graph[scd].append(fst)
for i in range(1,node+1):
if not visit[i]:
rst+=1
visit[i]=1
find(i)
print(rst)반응형
'알고리즘 문제들 으악 > 백준' 카테고리의 다른 글
| [python]5014번 스타트링크, 값 범위 설정의 중요성 (0) | 2023.01.20 |
|---|---|
| [python]1074번 Z,최적화 (0) | 2023.01.19 |
| [python]9095번 1,2,3 더하기 (0) | 2023.01.18 |
| [python]11726번 2×n 타일링, 문제 속 알고리즘 파악 (0) | 2023.01.17 |
| [python]1104번 플로이드,반복문에서 K 순서가 바깥쪽에 있는 이유 (0) | 2023.01.15 |