#include <stdio.h> #pragma warning(disable:4996) char map[100][100]; int visited[100][100]; int len = 1000; int n, m; void maze(int x, int y, int min) { map[x][y] = '1'; if (x == 0 && y == m - 1) { if (len > min) len = min; } if (map[x - 1][y] == '0') { maze(x - 1, y, min + 1); } if (map[x + 1][y] == '0') { maze(x + 1, y, min + 1); } if (map[x][y + 1] == '0') { maze(x, y + 1, min + 1); } if (map[x][y - 1] == '0') { maze(x, y - 1, min + 1); } map[x][y] = '0'; } int main() { int i; scanf("%d %d", &n, &m); for (i = 0; i < n; i++) { scanf("%s", &map[i]); } maze(n - 1, 0, 1); printf("%d\n", len); return 0; } | cs |
'NOTE > Algorithm' 카테고리의 다른 글
자료구조) Graph (0) | 2015.08.25 |
---|---|
자료구조) QuickSort (0) | 2015.08.25 |
자료구조) linked_queue (0) | 2015.08.25 |
자료구조) linked_stack (0) | 2015.08.25 |
uva_10074) Take the Land (0) | 2015.08.21 |