https://www.acmicpc.net/problem/2178
Solution
미로를 탐색해나가면서 가중치를 구해야 하기 때문에 BFS를 써야 한다. BFS의 개념과 문제에서 미로의 배열이 붙어서 주어지므로 문자열로 처리하는 것과, 시작 위치와 도착 위치도 카운트 해주는 것에 주의하면 크게 어렵지않게 풀 수 있다.
시작은 (0, 0) 부터 시작하므로, 큐에 (0, 0)을 넣어준다. 그리고 distance 배열을 만들고 시작 위치도 카운트 해주므로 [0][0]위치의 값은 1로 초기화 해준다. 큐를 돌면서 지나갈 수 있고(maze 배열의 값이 '1') 아직 방문하지 않았으면(distance 배열의 값이 0) 전에 방문했던 위치의 거리에 1을 더해 현재 위치 거리를 초기화해준다. 그리고 도착 위치의 거리 값을 리턴하고 출력한다^_^
'Algorithm > BOJ' 카테고리의 다른 글
[백준/Python] 16236번 아기 상어 (0) | 2020.06.29 |
---|---|
[백준/Python] 14503번 로봇 청소기 (0) | 2020.04.20 |
[백준/Python] 1260번 DFS와 BFS (0) | 2020.04.19 |
[백준/Python] 1012번 유기농배추 (0) | 2020.04.18 |
[백준/Python] 14502번 연구소 (0) | 2020.04.15 |
,