Algorithm 💫/Problem Solving
[백준] 2178번: 미로 탐색 / C++
돼지고기맛있다
2021. 9. 16. 16:46
반응형
✏️ 문제 링크
https://www.acmicpc.net/problem/2178
2178번: 미로 탐색
첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.
www.acmicpc.net
✏️ 문제 설명 (더보기 클릭 👆🏻)
✏️ 문제 코드
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int, int>;
int m[101][101];
int N, M;
int dx[]={-1, 1, 0, 0};
int dy[]={0, 0, -1, 1};
int bfs(){
queue<pii> q; q.push({0,0});
while(!q.empty()){
int x=q.front().first; int y=q.front().second;
q.pop();
for(int i=0; i<4; i++){
int nx=x+dx[i]; int ny=y+dy[i];
if(nx<0 || nx>=N || ny<0 || ny>=M || m[nx][ny]!=1) continue;
m[nx][ny]=m[x][y]+1;
q.push({nx, ny});
}
}
return m[N-1][M-1];
}
int main(){
cin>>N>>M;
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
scanf("%1d", &m[i][j]);
}
}
cout<< bfs();
return 0;
}
⭐ if feedback and question : comment please⭐
반응형