문제 주소: https://www.acmicpc.net/problem/2606
난이도: silver 3
def bfs(start, graph, visited):
queue = deque([start]) #deque를 사용할꺼고 시작은 start라는 파라미터에서 한다
while queue: #deque에 원소가 있는동안
v = queue.popleft() #맨 앞의 원소를 pop하고
for node in graph[v]: # v에서 갈수있는 장소들 중에서
if node not in visited: #visited에 없다면(가본적이 없다면)
queue.append(node) #deque에 추가하고
visited.add(node) #방문했다고 표시해준다.
from collections import deque
N = int(input())
K = int(input())
graph = [[] for i in range(N+1)]
for i in range(K):
n1, n2 = map(int, input().split())
graph[n1].append(n2)
graph[n2].append(n1)
visited = set()
def bfs(start, graph, visited):
queue = deque([start])
while queue:
v = queue.popleft()
for node in graph[v]:
if node not in visited:
queue.append(node)
visited.add(node)
bfs(1, graph, visited)
print(len(visited) - 1)