본문 바로가기

BOJ

[BOJ][Python] 백준 14502번 - 연구소

728x90

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

 

14502번: 연구소

인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크

www.acmicpc.net

 

 


문제 풀이

BFS로 바이러스를 퍼트리는 과정을 진행했다. 그리고 벽을 꼭 3개를 세워야 하는데, 빈칸의 좌표를 저장해서 이 좌표 중 3개에 벽을 세웠다. 모든 경우를 다 확인했으며 3개를 뽑을때 itertools 모듈을 사용하여 해결했다. N이 최대 8이므로, $_{64}C_{3}$정도면 무난하게 할 수 있다. 벽 3개를 뽑았으면, 안전 영역의 개수를 카운트하여 최대를 갱신해줬다. 또한 모든 과정을 확인해봐야 하는데 맵을 초기 상황으로 만들어주기 위해 원래의 리스트로 복사해야 하지만 리스트는 얕은 복사로는 안되므로(mutable) deepcopy를 써서 복사해주었다.

 

 

코드

728x90