티스토리 뷰

PS/BOJ

[2178번] 미로탐색

mming_0213 2019. 10. 8. 03:05
#include <cstdio>
#include <queue>
#include <iostream>
using namespace std;

const int MAX = 110;
int map[MAX][MAX];
int dist[MAX][MAX];
int N,M;
int dx[4] = {-1,1,0,0};
int dy[4] = {0,0,-1,1};

int main()
{
	scanf("%d %d", &N, &M);

	for(int i = 0; i < N; i++)
	{
		for(int j = 0; j < M; j++)
		{
			scanf("%1d", &map[i][j]);
		}
	}
	/*
	for(int i = 0; i < N; i++)
	{
		for(int j = 0; j < M; j++)
		{
			printf("%d", map[i][j]);
		}
		printf("\n");
	}
	*/

	queue<pair<int, int>> Queue;
	Queue.push(make_pair(0,0));
	dist[0][0] = 1; 

	while(!Queue.empty())
	{
		int x = Queue.front().first;
		int y = Queue.front().second;
		Queue.pop();

		for(int k = 0; k < 4; k++)
		{
			int nx = x + dx[k];
			int ny = y + dy[k];
			if(nx >= 0 && nx < N && ny >= 0 && ny < M)
			{
				if(map[nx][ny] == 1 && dist[nx][ny] == 0)
				{
				//	printf("(%d,%d)\n",nx, ny);
					dist[nx][ny] = dist[x][y] + 1;
					Queue.push(make_pair(nx, ny));
				}	
			}
		}
	}
	printf("%d\n", dist[N-1][M-1]);

	return 0;
}

'PS > BOJ' 카테고리의 다른 글

[2146번] 다리 만들기  (0) 2019.10.12
[7576번] 토마토  (0) 2019.10.12
[4963] 섬의 개수  (0) 2019.10.08
[2667번] 단지번호붙이기  (0) 2019.10.07
[1707번] 이분 그래프  (0) 2019.10.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함