반응형
bfs dfs 의 문제에 으쌰으쌰해 한방에 맞춘 문제
import collections
def bfs(graph, start_node):
will_visit=collections.deque(graph[start_node])
visit=[start_node]
while will_visit:
travel = will_visit.popleft()
if travel not in visit:
if len(graph[travel])>0:
for k in graph[travel]:
will_visit.append(k)
visit.append(travel)
return set(visit)
computer = int(input())
edges = int(input())
networks={}
for i in range(computer):
networks[i+1] =[]
for _ in range(edges):
tmp=list(map(int, input().split(" ")))
if tmp[1] not in networks[tmp[0]]:
networks[tmp[0]].append(tmp[1])
if tmp[0] not in networks[tmp[1]]:
networks[tmp[1]].append(tmp[0])
print(len(bfs(networks, 1))-1)
반응형
'알고리즘' 카테고리의 다른 글
백준 11724번 연결요소의 개수 (0) | 2020.09.30 |
---|---|
백준 13904번 과제 파이썬 (0) | 2020.09.30 |
백준 1260 dfs 와 bfs (0) | 2020.09.24 |
collections deque (0) | 2020.09.24 |
백준 주의사항: 왜이틀( 왜 이게 틀리지?) 런타임 에러, 시간 초과 (0) | 2020.09.24 |