https://www.acmicpc.net/problem/14940
<aside> 📌 모든 지점에 대해 목표 지점(값이 2인 지점)까지의 최단 거리를 구하기
</aside>
하지만 20분이 지나도 문제 풀이 아이디어가 떠오르지 않았다…
결국 정답의 힘을 받아 코드를 작성하였다.
복습 필수!!
n, 가로 길이 m, 지도 정보를 grid 리스트로 입력받는다.find_distance_to_goal를 호출한다.
distances을 -1로 초기화한다. (거리 정보가 없는 경우 -1로 해야 하기 때문에)grid를 순회하며 목표지점인 2와 땅이 아닌 지점 0을 찾아내어 거리 배열distances 에 해당하는 위치의 값을 0으로 설정한다.(target_x, target_y)의 위치를 큐 queue에 첫번째 값으로 초기화한다.directions도 설정한다.queue에 값이 있는 동안 현재 지점을 꺼내와 상하좌우 인접한 지점이 지도 범위 안에 있고, 갈 수 있는 땅(1)이고, 아직 방문하지 않았을 경우에 인접한 지점의 거리를 현재 거리+1로 설정하고 큐에 추가한다.queue에 값이 없어질동안 e 과정을 반복하여 BFS 탐색한다distances를 반환한다.distances를 한 줄에 공백을 두어 출력한다.