이번 문제는 간단하게 BFS 혹은 DFS를 적용하는 문제이다. 시작 노드는 정해져 있고 이 노드와 연결된 다른 노드들의 수를 count하기만 되고 BFS를 사용하여 무슨 노드를 방문했는지 아래의 코드와 같이 찍고 방문한 노드들의 개수를 리턴해주면 되는데 시작 노드는 count하지 않음으로 방문한 노드들의 개수에 1를 빼고 출력하였다.
from collections import deque
def bfs(graph,start_node,n):
need_visited,visited = deque([start_node]),deque()
while need_visited:
now_node = need_visited.popleft()
if now_node not in visited:
visited.append(now_node)
need_visited.extend(graph[now_node])
return len(visited) - 1
n = int(input())
edge = int(input())
graph = {x:[] for x in range(1,n+1)}
for i in range(edge):
start_node,end_node = map(int,input().split())
graph[end_node].append(start_node)
graph[start_node].append(end_node)
print(bfs(graph,1,n))