[C++ / 백준 2178번] 미로 탐색

2025. 3. 5. 16:42·프로그래밍 공부/백준 (C++)

문제

 

 

시행 착오

DFS 로 풀이하려다 시간 초과가 났다. 잘 생각해보니 DFS보단 BFS 가 훨씬 효율적이고 정확한 듯 해서 바꾸어서 풀었다.

 

 

해결 방법

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <queue>

using namespace std;

int N, M;

int arr[100][100];
int num[100][100];
bool visited[100][100] = {false};

queue < pair<int,int> > q;

int x_dir[4] = { -1 , 1 , 0 , 0 };
int y_dir[4] = { 0 , 0 , -1 , 1 };

void bfs(int y, int x)
{
	visited[y][x] = true;

	q.push(make_pair(y, x));

	num[y][x]++;

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

		for (int i = 0; i < 4; i++)
		{
			int ny = y + y_dir[i];
			int nx = x + x_dir[i];


			if ((ny >= 0 && ny < N) && (nx >= 0 && nx < M)
				&& !visited[ny][nx] && arr[ny][nx] == 1)
			{
				q.push(make_pair(ny, nx));

				visited[ny][nx] = true;

				num[ny][nx] = num[y][x] + 1;

			}

		}
	}
}

int main()
{
	cin >> N >> M;

	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < M; j++)
		{
			scanf("%1d", &arr[i][j]);
		}
	}
	
	bfs(0, 0);

	cout << num[N-1][M-1];

	return 0;
}

 

 

 

'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글

[C++ / 백준 16929번] Two Dots  (0) 2025.03.15
[C++ / 백준 7576번] 토마토  (0) 2025.03.06
[C++ / 백준 4963번] 섬의 개수  (0) 2025.03.04
[C++ / 백준 2667번] 단지번호 붙이기  (0) 2025.02.26
[C++ / 백준 1707번] 이분 그래프  (0) 2025.02.26
'프로그래밍 공부/백준 (C++)' 카테고리의 다른 글
  • [C++ / 백준 16929번] Two Dots
  • [C++ / 백준 7576번] 토마토
  • [C++ / 백준 4963번] 섬의 개수
  • [C++ / 백준 2667번] 단지번호 붙이기
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (183)
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (62)
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (10)
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      오블완
      실전 C프로그래밍 실습문제
      실전 C프로그래밍
      언리얼엔진 옵저버 패턴
      c++ 17298
      실전C프로그래밍 실습문제
      C언어 실습문제
      언리얼엔진
      c언어
      언리얼엔진5 fps 프로젝트
      티스토리챌린지
      실전 C프로그래밍 나중채
      핸즈온 머신러닝
      실전C프로그래밍 나중채
      언리얼엔진5
      언리얼엔진 디자인 패턴
      실전C프로그래밍
      언리얼엔진 중재자 패턴
      핸즈온 머신러닝 2판
      실전 C 프로그래밍
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    [C++ / 백준 2178번] 미로 탐색
    상단으로

    티스토리툴바