백준 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
댓글을 사용할 수 없습니다.