Baekjoon 에 있는 BFS / DFS 문제이다. deque 라이브러리를 사용했고 추가로 3개의 벽을 세우는 과정에서 조합(combination) 라이브러리를 사용하였다.
먼저 벽 3개를 세운 후 바이러스를 큐에 넣는 방식으로 BFS를 진행하였다. 벽 3개를 효과적으로 세우는 방법을 생각해봤지만 별 방법이 없는 것 같았고
from itertools import combinations 로 조합을 사용하여 모든 경우의 수를 테스트했다.
여러 경우의 수를 고려해야하기 때문에 origin 이라는 원본 배열을 두고 이 2차원 배열을 반복문을 돌 때마다 복사해 주어야 한다. 여기서 from copy import deepcopy를 쓸 수 있지만
이는 시간이 오래 걸린다 해서 아래와 같이 2차원 배열을 복사했다.