A. 문제설명
문제에 대한 자세한 설명은 링크 참조
1. 위 그림과 같은 N*M 땅이 존재
2. 땅의 검은 부분에는 치즈가 존재, 흰 부분에는 공기가 존재
3. 치즈는 상/하/좌/우로 2면이상 공기와 맞닿으면 1초이후 사라짐
4. 그러나 치즈에 둘러쌓인 공기부분은 치즈에 영향을 주지 않음
5. 치즈는 배열의 가장자리에는 존재하지 않는다고 할 때, 치즈가 땅에서 없어지기까지의 총 시간을 구하라
B. 접근법
BFS
간단한 BFS 문제이다. 여기서 조심해야 할 것은 치즈에 둘러쌓은 공기 부분을 무시해야 한다는 것인데, 나의 경우 air[][] 배열을 이용하여 처음에 가장자리에서 시작하여 치즈에게 영향을 주는 공기 부분을 먼저 체크하였다. 그 후, 해당 공기부분과 2면 이상 닿는 치즈를 땅에서 모두 없어질 때까지 구한다.
C. 풀이
1. 가장자리에서 시작하여 치즈 바깥부분에 존재하는 공기 부분을 air[][] 배열에 체크
2. 해당 공기부분과 2면 이상 닿는 치즈를 확인하여 제거
3. 배열 내 치즈가 모두 없어질 때까지 반복
4. 걸린 총 시간 반환
D. 내 코드