Problem Solving
boj 3055 : SLIKAR
1ssrek
2016. 8. 29. 20:20
boj 3055 : SLIKAR(탈출)
https://www.acmicpc.net/problem/3055
물이넘치는것과 비버가 이동하는 것 모두 고려해주어야 해서 풀기 조금 난해하다고 생각되지만, 사실은 2개의 큐로 각각을 따로 처리하면 간단하게 해결할 수 있다.
첫번째 queue는 마지막으로 물이 이동한 위치를 넣어준다. 이를 이용해서 맵을 갱신해준다.
두번째 queue는 마지막 비버가 있을 수 있는 위치를 입력한다. 만약 비버가 동굴을 만나면 그때까지의 count를 출력하면 된다. 이 두번째 queue가 비었다는 것은 비버가 있을 수 있는 곳이 없다는 것이므로 못간다를 출력하면된다.
중요한건 첫번째 큐를 이용하여 물이 이동하는 것을 먼저 해주고, 두번째 큐를 이동하여 비버가 있을 수 있는 위치를 갱신하는 것. 이 순서만 잘 지켜주면 일반적인 길찾기 문제처럼 해결가능하다.
0ms로 ac를 냈는데, 아마 queue 없이 맵만 가지고하여도 ac를 낼 듯 하다.