미소를뿌리는감자의 코딩
[백준 2024/02/15] 2606번 바이러스 본문
728x90
https://www.acmicpc.net/problem/2606
1. 접근 방법
이번 문제는 1번 노드와 연결된 노드의 개수를 구하는 문제이다.
dfs 함수에다가 set을 넘겨주고 set에 노드를 추가하는 식으로 진행했다.
만약 새로운 노드에 접근 했다면, 해당 노드에 대해서 새로운 노드들을 접근해 나가는 식으로 코드를 진행했다.
또한 새로운 노드를 set에다가 add 해주는 것도 잊지 않았다.
최종적으로는 visited를 return 해주어, 여태까지 접근 했던 노드들을 되돌려주었다.
2. 코드
from collections import defaultdict
comp = int(input())
edges = int(input())
list_node = defaultdict(list)
nodes = []
for i in range(edges):
start, end = map(int, input().split())
list_node[start].append(end)
list_node[end].append(start)
def dfs(node, visited):
if node not in visited:
visited.add(node)
for neighbor in list_node[node]:
dfs(neighbor, visited)
return visited
if 1 not in list_node:
print(0)
else:
visited = dfs(1, set())
print(len(visited)-1)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 2024/02/19] 13905번 세부 (0) | 2024.02.19 |
---|---|
[백준 2024/02/17] 1068번 트리 (0) | 2024.02.17 |
[백준 2024/02/15] 2667번 단지번호붙이기 (0) | 2024.02.15 |
[백준 2024/02/14] 5957번 Cleaning the Dishes (1) | 2024.02.14 |
[백준 2024/02/14] 9863번 Calling All Programmers (0) | 2024.02.14 |