1
10 10
####.#####
#........#
#........#
#........#
#........#
#........#
#........#
#........#
#***@****#
##########
위와 같은 맵을 1000 1000 으로 확장하면 약 30초 정도가 걸립니다.
그 경우 불이 약 997개 정도 있을 텐데 각각이 어떻게 번지는지를 다 계산을 해야하기 때문에 연산량이 많은데
어짜피 불이 있는 곳에 또 불이 못간다는 것을 적용하면 휠씬 빨리 처리가 가능합니다.
위에서 queue 를 전역을 빼서 모든 불이 있는 곳을 다 push 하고 한번에 처리하면 될 것 같습니다.
" 불이 이동한 거리보다 사람이 벽에 이동하는 거리가 작을 경우 사람은 탈출이 가능하다 입니다."
이 로직에 예외가 없을지 저도 궁금하네요..
specimen 5년 전
일단 제가 생각한 방식은
불이 이동한 거리보다 사람이 벽에 이동하는 거리가 작을 경우 사람은 탈출이 가능하다 입니다.
그래서 불이 벽에 도달하는 거리와 사람이 벽에 도달하는 거리에 대한 최소값의 경우를 모두 구한 후에 비교하고
사람이 벽에 도달하는 거리가 불이 벽에 도달하는 거리보다 작았을 경우 탈출 가능이라고 짰습니다.
그리고 만약 사람과 벽이 둘다 시작할 때 벽에 존재하는 경우에는 사람이 탈출할 수 있다고 예외처리를 했습니다.
그런데 시간 초과가 떠서 ㅠㅠ 어느 부분을 고쳐야할지 모르겠습니다....