티스토리 뷰
1. 문제 내용
2. 접근 방식
- 1번 컴퓨터와 연결된 노드들을 탐색한다.
깊이 우선 탐색과 너비 우선 탐색 모두 사용할 수 있다. 그러나 너비 우선 탐색 코드가 가장 먼저 떠올라서 너비 우선 탐색으로 코드를 작성하였다.
3. 정답 코드
from collections import deque
def bfs(v):
visited[v] = True
queue = deque([v])
while queue:
n = queue.popleft()
for i in data[n]:
if not visited[i]:
visited[i] = True
queue.append(i)
return sum(visited) - 1 # 1은 카운트 되면 안 되기 때문에 -1한다
n = int(input())
c = int(input())
data = [[] for _ in range(n + 1)]
for _ in range(c):
x, y = map(int, input().split())
data[x].append(y)
data[y].append(x)
visited = [False] * (n + 1)
print(bfs(1))
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 1003번 피보나치 함수 파이썬 정답 코드 (0) | 2023.05.21 |
---|---|
[백준] 1260번 DFS와 BFS 파이썬 정답 코드 (0) | 2023.05.21 |
[백준] 2748번 피보나치 수 2 파이썬 정답 코드 (0) | 2023.05.21 |
[백준] 2775번 부녀회장이 될테야 파이썬 정답 코드 (0) | 2023.05.21 |
[백준] 2869번 달팽이는 올라가고 싶다 파이썬 정답 코드 (0) | 2023.05.14 |