본문 바로가기

BOJ

[BOJ][Python] 백준 24513번 - 좀비 바이러스

728x90

문제 링크: https://www.acmicpc.net/problem/24513

 

24513번: 좀비 바이러스

여기 $N$ x $M$ 격자 모양의 마을이 있다. 어느 날 세상에 좀비 바이러스가 창궐하여 바이러스가 빠르게 퍼져나가버린다. 바이러스에 대해 조사한 결과 세 종류의 바이러스가 존재했으며 각각 $1$

www.acmicpc.net


문제 풀이

평범한 BFS이지만 문제의 조건이 조금 특이하다. '마을이 한 바이러스에 완전히 감염되기 전에 다른 종류의 바이러스가 마을에 도착하면 번 바이러스가 만들어진다.' 와  '번과 번 바이러스는 치사율은 낮지만 전염성이 강해 상하좌우에 인접해 있는 마을로 동시에 퍼져나가며 한 마을을 완전히 감염시키는 데 1시간 걸린다.' 때문에 특수한 조건을 걸어줘야 한다.  먼저 바이러스가 도달한 시간을 visited 배열에 추가시켜 준다. 그리고 큐를 돌리면서 3번 바이러스를 제외하고 다른 바이러스이면서 도달한 시간이 같은 경우 3번 바이러스로 바꿔준다. 3번 바이러스가 되었는데도 바이러스의 좌표가 큐에 남아있을 수도 있으니 가장 먼저 if문으로 걸러줘야 한다. 이거 때문에 조금 시간을 잡아먹었다.

 

코드

 

728x90