현제의 현재이야기
<2022모각코/TIL> [백준/python] 11724 - 연결 요소 개수 본문
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):
x, y = map(int, input().split())
graph[x].append(y)
graph[y].append(x)
def dfs(v):
visited[v] = True
for i in graph[v]:
if visited[i] == False:
visited[i] = True
dfs(i)
count = 0
for i in range(1, n+1):
if visited[i] == False:
count+=1
dfs(i)
print(count)
알고리즘: dfs를 활용해서 푸는 문제이다. x y를 저렇게 나눠서 append 하는 이유는 이것이 방향이 없는 그래프임으로 x와 y모두 넣어줘야하기 때문이다. 인접 리스트로 만든다음에 dfs를 시행하고, dfs를 나와 False가 되면 count를 하나 올려주는 형식이다.
dfs의 이해를 도와준 문제. 아직도 근데 잘 이해가 되지 않는다..
'algorithm > HUFS 2022 하계 모각코' 카테고리의 다른 글
<2022모각코/TIL> 코드트리 - 그래프 탐색 (0) | 2022.08.07 |
---|---|
<2022모각코/TIL> [백준/python] 3048 - 개미 (0) | 2022.08.05 |
<2022모각코/TIL> [백준/python] 9372 - 상근이의 여행 (0) | 2022.07.31 |
<2022모각코/TIL> [백준/python] 17451 - 평행우주 (0) | 2022.07.23 |
<2022모각코/TIL> [백준/python] 연결 요소의 개수 (BFS) (0) | 2022.07.22 |
Comments