![[BOJ 2178] 미로 탐색 (C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDW50R%2FbtrjlQybLOL%2FOCtSHoBkyHGwG6rQnPZQ31%2Fimg.png)

Problem
https://www.acmicpc.net/problem/2178
2178번: 미로 탐색
첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.
www.acmicpc.net
Comment
2178번 문제의 입력이 기다란 string type임을 알 수 있습니다. 따라서 입력을 받은 후 배열에 넣어주기 위해 일일이 숫자로 바꿔주어야 합니다.
해당 코드는 BFS를 이용해서 풀었습니다. 접근하는 좌표를 방문했다고 체크한 다음, 현재 좌표('current point') 기준 상하좌우를 탐색해 갈 수 있다면 갈 수 있는 곳에 'current point'에 담겨있는 값의 1을 더해줍니다. 그렇게 된다면 최종적으로 마지막 좌표에서 총 거리가 담기게 될 것입니다.
이 때, 무작정 상하좌우('next point')에 'current point'값의 1을 더해주는 것이 아닙니다. 'next point'를 이미 방문했다면 더했을 때 중복되는 결과를 낳을 것입니다. 따라서 'next point'의 방문 여부를 반드시 파악해야 합니다.
Code

Result

Remark
visited 배열과 다음에 탐색할 queue를 만들어주는 것을 잊지 말아야합니다.
'CSE > 알고리즘 (algorithm)' 카테고리의 다른 글
[BOJ 9012] 괄호 (C++) (0) | 2021.11.09 |
---|---|
[BOJ 10828] 스택 (C++) (0) | 2021.11.09 |
[BOJ 10950] A+B - 3 (C++) (0) | 2021.11.05 |
[BOJ 10871] X보다 작은 수 (C++) (0) | 2021.11.05 |
[BOJ 2753] 윤년 (C++) (0) | 2021.11.05 |
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!