728x90
문제 링크: https://www.acmicpc.net/problem/24513
문제 풀이
평범한 BFS이지만 문제의 조건이 조금 특이하다. '마을이 한 바이러스에 완전히 감염되기 전에 다른 종류의 바이러스가 마을에 도착하면 번 바이러스가 만들어진다.' 와 ' 번과 번 바이러스는 치사율은 낮지만 전염성이 강해 상하좌우에 인접해 있는 마을로 동시에 퍼져나가며 한 마을을 완전히 감염시키는 데 1시간 걸린다.' 때문에 특수한 조건을 걸어줘야 한다. 먼저 바이러스가 도달한 시간을 visited 배열에 추가시켜 준다. 그리고 큐를 돌리면서 3번 바이러스를 제외하고 다른 바이러스이면서 도달한 시간이 같은 경우 3번 바이러스로 바꿔준다. 3번 바이러스가 되었는데도 바이러스의 좌표가 큐에 남아있을 수도 있으니 가장 먼저 if문으로 걸러줘야 한다. 이거 때문에 조금 시간을 잡아먹었다.
코드
728x90
'BOJ' 카테고리의 다른 글
[BOJ][C++] 백준 15719번 - 중복된 숫자 (0) | 2022.03.30 |
---|---|
[BOJ][Python] 백준 1013번 - Contact (0) | 2022.03.30 |
[BOJ][C++] 백준 24860번 - Counting Antibodies (0) | 2022.03.29 |
[BOJ][Python] 백준 14950번 - 정복자 (0) | 2022.02.11 |
[BOJ][Python] 백준 7511번 - 소셜 네트워킹 어플리케이션 (0) | 2022.02.11 |