반응형
https://school.programmers.co.kr/learn/courses/30/lessons/1844
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
BFS 알고리즘 적용
#include<vector>
#include<queue>
using namespace std;
int dirX[4] = {0,0,-1,1};
int dirY[4] = {-1,1,0,0};
int solution(vector<vector<int> > maps)
{
int answer = -1;
int i=0, j=0;
int n= maps.size();
int m= maps[0].size();
queue<pair<int,int>> move;
vector<vector<bool>> visit(n, vector<bool>(m,false));
visit[0][0] = true;
move.push({0,0});
while(!move.empty()){
int x = move.front().first;
int y = move.front().second;
int dist = maps[x][y];
move.pop();
for(i=0; i<4; i++) {
int ux = x + dirX[i];
int uy = y + dirY[i];
if(ux < 0 || uy < 0 || ux >= n || uy >= m
|| maps[ux][uy] == 0
|| visit[ux][uy] == true)
continue;
move.push({ux,uy});
maps[ux][uy] = dist + 1;
visit[ux][uy] = true;
}
}
if (visit[n-1][m-1])
answer = maps[n-1][m-1];
return answer;
}728x90
반응형
'개발아닌개발 > 알고리즘문제풀이' 카테고리의 다른 글
| [백준 알고리즘] 1260번 문제 DFS와 BFS (0) | 2025.05.21 |
|---|---|
| [백준 알고리즘] 2667번 문제 단지번호 붙이기 (0) | 2025.05.20 |
| [프로그래머스] 광물캐기 (6) | 2025.05.17 |
| [백준 알고리즘] 2011번 문제 암호코드 (0) | 2021.11.08 |
| [백준 알고리즘] 15954번 문제 인형들 (0) | 2021.11.08 |
댓글