문제
사각형 모양의 판의 크기와 한 조각의 치즈가 판 위에 주어졌을 때, 치즈는 공기중에 닿으면 1시간뒤에 사라진다. 공기 중에서 치즈가 모두 녹아 없어지는 데 걸리는 시간과 모두 녹기 한 시간 전에 남아있는 치즈조각이 놓여 있는 칸의 개수를 구하는 프로그램을 작성하시오. )
제한사항
이외의 제한사항은 없다.
첫번째 생각
치즈 안쪽에 공기가 들어있을 수 있으므로,
우선 치즈가 녹는 공기(바깥공기)와 치즈가 녹지 않는 공기(안쪽공기)를 구분하고
바깥공기와 접촉한 치즈를 녹여가면서 구한다. 이 때, 남은 치즈의 갯수를 기록하고
치즈가 모두 녹았는지 체크를 한다. 치즈가 모두 녹았다면 남아있던 치즈의 갯수를 출력한다.
치즈가 모두 녹지 않았다면 남아있는 치즈의 갯수를 업데이트한다.
- 바깥공기 구하는 법
0,0에서 시작해서 BFS탐색을 통해 1이 아닌 모든 공간을 찾고, 이 과정을 통해 방문된 지점은 바깥공기이다.
Code
1 | |