https://www.acmicpc.net/problem/2178

 

2178번: 미로 탐색

첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.

www.acmicpc.net


Solution

 

 

미로를 탐색해나가면서 가중치를 구해야 하기 때문에 BFS를 써야 한다. BFS의 개념과 문제에서 미로의 배열이 붙어서 주어지므로 문자열로 처리하는 것과, 시작 위치와 도착 위치도 카운트 해주는 것에 주의하면 크게 어렵지않게 풀 수 있다.

 

시작은 (0, 0) 부터 시작하므로, 큐에 (0, 0)을 넣어준다. 그리고 distance 배열을 만들고 시작 위치도 카운트 해주므로 [0][0]위치의 값은 1로 초기화 해준다. 큐를 돌면서 지나갈 수 있고(maze 배열의 값이 '1') 아직 방문하지 않았으면(distance 배열의 값이 0) 전에 방문했던 위치의 거리에 1을 더해 현재 위치 거리를 초기화해준다. 그리고 도착 위치의 거리 값을 리턴하고 출력한다^_^

 


생강강

,