반응형
SMALL
#include <stdio.h>
#include <deque>
using namespace std;
deque<int> dqi;
deque<int> dqj;
deque<int> cnt;
int y, x;
int y_[4] = { 0, 0, 1, -1 };
int x_[4] = { 1, -1, 0, 0 };
int n, m;
int map[100][100];
int visited[100][100];
int result;
int main(void) {
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%1d", &map[i][j]);
visited[i][j] = 1;
}
}
dqi.push_back(0);
dqj.push_back(0);
visited[0][0] = 0;
cnt.push_back(1);
while (1) {
y = dqi.front();
x = dqj.front();
result = cnt.front();
dqi.pop_front();
dqj.pop_front();
cnt.pop_front();
if (y == n - 1 && x == m - 1) break;
for (int k = 0; k < 4; k++) {
if (0 <= y + y_[k] && y + y_[k] < n && 0 <= x + x_[k] && x + x_[k] < m && map[y + y_[k]][x + x_[k]] == 1 && visited[y + y_[k]][x + x_[k]] == 1) {
visited[y + y_[k]][x + x_[k]] = 0;
dqi.push_back(y + y_[k]);
dqj.push_back(x + x_[k]);
cnt.push_back(result + 1);
}
}
}
printf("%d", result);
}
반응형
LIST
'알고리즘 문제 풀이 > Baekjoon' 카테고리의 다른 글
10809 - 알파벳 찾기 (0) | 2019.08.11 |
---|---|
11720 - 숫자의 합 (C) (0) | 2019.08.11 |
팩토리얼 - 10872 (C) (0) | 2019.06.22 |
단지번호붙이기 - 2667번 (Python) (0) | 2019.06.21 |
DFS와 BFS - 1260번 (Python) (0) | 2019.06.21 |