백준 2178 미로 탐색 C++
- C
- 2023. 4. 5.
백준 2178 미로 탐색
백준 2178번 "미로 탐색" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.
2178번 문제에 주어지는 입력 및 예시
입력:
4 6
101111
101010
101011
111011
출력:
15
코드
백준 2178번 "미로 탐색" 문제의 코드입니다.
#include <bits/stdc++.h>
using namespace std;
struct Node{int y,x,cnt;}node;
int DirectionY[4]={-1,0,1,0};//위 오 아 왼
int DirectionX[4]={0,1,0,-1};
int main(){
int n,m;
queue<Node> q;
cin>>n>>m;
string a[100];
for(int i=0;i<n;i++) cin>>a[i];
q.push({0,0,1});
a[0][0]='2'; //visited
while(!q.empty()){
node=q.front(); q.pop();
for(int i=0;i<4;i++){
int dy=node.y+DirectionY[i];
int dx=node.x+DirectionX[i];
if(dy<0||dy>=n||dx<0||dx>=m) continue;//오버플로우 체크.
if(a[dy][dx]=='2'||a[dy][dx] == '0' ) continue;//벽OR방문
if( dx == m-1 && dy == n-1 ){
cout<<node.cnt+1;
return 0;
}
a[dy][dx]='2';
q.push({dy,dx,node.cnt+1});
}
}
return -1;
}
실행
위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.
'C' 카테고리의 다른 글
백준 1012 유기농 배추 C++ (0) | 2023.04.06 |
---|---|
백준 2920 음계 C++ (0) | 2023.04.06 |
백준 2475 검증수 C++ (0) | 2023.04.05 |
백준 1157 단어 공부 C++ (0) | 2023.04.05 |
백준 2941 크로아티아 알파벳 C++ (0) | 2023.04.05 |