백준 2178 미로탐색 C++
[문제 링크]
https://www.acmicpc.net/problem/2178
[입출력 예]
입력 | 출력 |
---|---|
4 6 101111 101010 101011 111011 |
15 |
[소스코드]
//20:35시작
#include <bits/stdc++.h>
using namespace std;
#define X first
#define Y second
int board[100][100];
int v[100][100];
int n,m;
int dx[4]= {1,0,-1,0};
int dy[4]= {0,1,0,-1};
void printBoard(){
for (int i=0; i<n; i++){
for (int j=0; j<m; j++){
cout<<board[i][j];
}
cout<<'\n';
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m;
for (int i=0; i<n; i++){
string s;
cin>>s;
for (int j=0; j<m; j++){
board[i][j]=s[j]-'0';
}
}
// printBoard();
queue <pair<int,int>> Q;
v[0][0]=1;
Q.push({0,0});
while(!Q.empty()){
pair <int,int> cur = Q.front(); Q.pop();
for(int i=0; i<4; i++){
int nx = cur.X + dx[i];
int ny = cur.Y + dy[i];
if (nx<0 || nx>=n || ny<0 || ny>=m)continue;
if (board[nx][ny]==0 || v[nx][ny]==1) continue;
v[nx][ny]=1;
board[nx][ny] = board[cur.X][cur.Y]+1;
Q.push({nx,ny});
}
}
cout << board[n-1][m-1];
return 0;
}
[주의할 점]
- 그래프 맨 끝 좌표 출력시 n,m으로 해서 처음에 0이 나왔다.
- 입력값이 한 줄로 주어지므로 int로 받지 않고 string으로 받아서 처리한다.
'PS > BOJ' 카테고리의 다른 글
BOJ 2580 스도쿠 C++ (0) | 2022.02.16 |
---|---|
백준 1182 부분수열의 합 파이썬 풀이 (0) | 2022.02.12 |
백준 3055번 탈출 파이썬 (0) | 2022.02.09 |
백준 15683 감시 C++ (0) | 2022.02.09 |
백준 9663 N-Queen (0) | 2022.02.09 |
댓글
이 글 공유하기
다른 글
-
BOJ 2580 스도쿠 C++
BOJ 2580 스도쿠 C++
2022.02.16 -
백준 1182 부분수열의 합 파이썬 풀이
백준 1182 부분수열의 합 파이썬 풀이
2022.02.12 -
백준 3055번 탈출 파이썬
백준 3055번 탈출 파이썬
2022.02.09 -
백준 15683 감시 C++
백준 15683 감시 C++
2022.02.09