def dfs(N):
stack = [1]
visted = [0]*(N+1)
cnt = 0
visted[1] = 1
while stack:
num = stack.pop()
cnt += 1
for ind in graph[num]:
if not visted[ind]:
visted[ind] = 1
stack.append(ind)
return cnt - 1
N = int(input())
M = int(input())
graph = [[] for _ in range(N+1)]
for _ in range(M):
a,b = map(int,input().split())
graph[a].append(b)
graph[b].append(a)
print(dfs(N))
기본적인 DFS였다. 방향성이 없기 때문에, graph라는 리스트에 양방향으로 전부 저장시켜주고, 방문을 표시해준뒤, 1번 컴퓨터에 연결된 모든 노드들을 찾아주면 된다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ] 7569 토마토 (0) | 2021.01.09 |
---|---|
[BOJ] 2751 수 정렬하기 2 (0) | 2021.01.09 |
[BOJ] 2178 미로탐색 (0) | 2021.01.09 |
[BOJ] 1764 듣보잡 (0) | 2021.01.09 |
[BOJ] 1697 숨바꼭질 (0) | 2021.01.09 |