Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

세상의 모든 알고리즘

[백준 2606번 python] 바이러스 본문

python

[백준 2606번 python] 바이러스

952hi 2021. 11. 5. 12:00

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

 

2606번: 바이러스

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

www.acmicpc.net

 

 

 

리스트 BFS문제를 풀다 그래프 탐색문제를 풀었습니다.

핵심은 양방향 그래프 아래 부분이라고 생각합니다.

graph[a].append(b)

graph[b].append(a)

알고있다면 굉장히 쉬운데 모르면 이해하기 힘든.. 몇번 활용해보고 이해하시길 바라겠습니다

 

import sys
from collections import deque

input = sys.stdin.readline
n = int(input())
m = int(input())

graph =[[] for _ in range(n+1)]
virus= [0] * (n+1)
virus[1] = 1

for _ in range(m):
    a,b = map(int,input().split())
    graph[a].append(b)
    graph[b].append(a)

q = deque()
q.append(1)

while q:
    x = q.popleft()
    for i in graph[x]:
        if virus[i] == 0:
            virus[i] = 1
            q.append(i)
count = 0
for i in range(2,n+1):
    if virus[i] == 1:
        count += 1

print(count)

알게된 점

백준문제를 풀다보면 희노애락을 느끼는 것 같다 문제를 풀고 사이트에서 채점하고 시간초과가 나왔을때

행복하다가도 좌절감에 빠지는 그런 느낌..? 좀더 열심히 공부해서 행복감만 느끼도록 노력해야겠다.