백준 / 14502번 / 연구소 / C++
# 출처 : https://www.acmicpc.net/problem/14502 BFS를 사용하여 바이러스를 퍼뜨렸고, 재귀를 사용하여 문제에서 요구한 3개의 벽을 세웠다.1. map에 전체 입력을 받음 (이때, 바이러스에 해당하는 2가 들어오면 바로 큐에 넣음)2. 3개의 벽을 세우기 위해 전체를 돌며 0이 보이면 tmp에 map을 카피한 후 재귀로 3개의 벽을 세움.즉, tmp는 최초 map의 모든 0에 벽을 세우기 위한 임시배열.3. 벽을 다 세웠으면 BFS로 들어가서 afterWall이라는 배열에 다시 복사를 한다. 그리고 다시 복사한 이 afterWall 배열을 가지고 바이러스를 퍼뜨린다.4. 매 회 바이러스가 퍼진 이후 0의 개수를 세서 그 최대가 되는 때를 출력. 바이러스가 퍼진 이후 전체를..
ALGORITHM
2019. 2. 2. 19:10