[알고리즘/파이썬] 백준 2606 - 바이러스

2020. 7. 14. 08:10개발/알고리즘

 

https://www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어��

www.acmicpc.net

 

간단한 BFS문제. 

 

computers = int(input())
edge_num = int(input())
edges = []
for _ in range(edge_num):
    s,e = list( map(int,input().split()))
    edges.append([s,e])


que = []
visit = []

# 출발지
que.append(1)

# BFS
while True:
	
    # 큐가 비면 종료
    if len(que) == 0 : break
    cur = que.pop(0)

    for ed in edges:
        if cur in ed:
            # cur 부분은 제거
            ed.remove(cur)
            # 남은 부분이 cur와 연결된 값.
            v = ed.pop()
            # que와 visit에 input
            if v not in visit:
                que.append(v)
                visit.append(v)

print(len(visit))