백준 3055 탈출 Java
2019. 10. 24.
구현, 시뮬레이션에 약한 것 같아서 그쪽 관련 문제만 풀어보다가 오랜만에 풀어본 BFS문제이다. 시뮬레이션 분류에서 발견했지만 BFS를 오랜만에 사용해서 실수를 좀 많이했던 문제이다. 돌은 X 물은 * 비버굴은 D 고슴도치는 S 물과 고슴도치는 상, 하, 좌, 우로 움직일 수 있고 물은 돌과 비버굴을 지날 수 없고 고슴도치는 물과 돌을 지날 수 없다. 1분에 한 칸씩 물과 고슴도치가 움직인다고할 때 고슴도치가 비버굴에 몸을 피하는 최소 시간을 출력하면 되는 문제이다. 문제 설명에서도 알 수 있듯이 물이 먼저 움직이고 고슴도치가 움직이는 로직으로 구현해주면 해결되는 문제이다. 상, 하, 좌, 우로 움직이고 최소시간을 구하는 것이기 때문에 당연하게 BFS를 사용해서 해결했다. 고슴도치의 위치를 담을 큐와 물..