세상의 모든 알고리즘
[백준 2606번 python] 바이러스 본문
https://www.acmicpc.net/problem/2606
리스트 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)
알게된 점
백준문제를 풀다보면 희노애락을 느끼는 것 같다 문제를 풀고 사이트에서 채점하고 시간초과가 나왔을때
행복하다가도 좌절감에 빠지는 그런 느낌..? 좀더 열심히 공부해서 행복감만 느끼도록 노력해야겠다.
'python' 카테고리의 다른 글
[프로그래머스 Python] 정수 제곱근 판별 (0) | 2021.11.10 |
---|---|
[백준 2667 python] 단지번호 붙이기 (0) | 2021.11.04 |
[백준 18352번 python] 특정 거리의 도시 찾기 (0) | 2021.11.04 |
[백준 2178번 python] 미로 탐색 문제 (0) | 2021.11.04 |
[백준 7576번 python] 토마토 문제 (0) | 2021.11.04 |