728x90
문제 링크: https://www.acmicpc.net/problem/14502
문제 풀이
BFS로 바이러스를 퍼트리는 과정을 진행했다. 그리고 벽을 꼭 3개를 세워야 하는데, 빈칸의 좌표를 저장해서 이 좌표 중 3개에 벽을 세웠다. 모든 경우를 다 확인했으며 3개를 뽑을때 itertools 모듈을 사용하여 해결했다. N이 최대 8이므로, $_{64}C_{3}$정도면 무난하게 할 수 있다. 벽 3개를 뽑았으면, 안전 영역의 개수를 카운트하여 최대를 갱신해줬다. 또한 모든 과정을 확인해봐야 하는데 맵을 초기 상황으로 만들어주기 위해 원래의 리스트로 복사해야 하지만 리스트는 얕은 복사로는 안되므로(mutable) deepcopy를 써서 복사해주었다.
코드
728x90
'BOJ' 카테고리의 다른 글
[BOJ][Python] 백준 2056번 - 작업 (0) | 2021.09.25 |
---|---|
[BOJ][Python] 백준 1766번 - 문제집 (0) | 2021.09.25 |
[BOJ][Python] 백준 2174번 - 로봇 시뮬레이션 (0) | 2021.09.24 |
[BOJ][Python] 백준 4766번 - 일반 화학 실험 (0) | 2021.09.24 |
[BOJ][Python] 백준 18301번 - Rats (2) | 2021.09.23 |