https://school.programmers.co.kr/learn/courses/30/lessons/1844
1.삽질과정
ny>=n, nx>=n
nx도 n으로 되있어서 틀렸습니다가 났다...
해결 : nx>=m -> continue;
2.전체코드
#include<bits/stdc++.h>
using namespace std;
queue<pair<int,int>> q;
int v[104][104];
int y,x,ny,nx;
int dx[]={1,0,-1,0};
int dy[]={0,1,0,-1};
int solution(vector<vector<int>> maps)
{
int n=maps.size(); //|
int m=maps[0].size(); //ㅡ
q.push({0,0});
v[0][0]=1;
while(q.size()){
tie(y,x)=q.front(); q.pop();
for(int i=0;i<4;++i){
ny=y+dy[i];
nx=x+dx[i];
if(ny<0||ny>=n||nx<0||nx>=m) continue;
if(v[ny][nx]) continue;
if(maps[ny][nx]==0) continue;
q.push({ny,nx});
v[ny][nx]=v[y][x]+1;
}
}
if(v[n-1][m-1]) return v[n-1][m-1];
return -1;
}
'Algorithm > bfs' 카테고리의 다른 글
백준 5014 스타트링크 c++ // bfs 를 사용하라. (dfs는 시간초과) (0) | 2024.03.04 |
---|---|
백준 13549 숨바꼭질3 c++ // pq를 이용한 bfs 구현방법 (0) | 2023.11.29 |
프로그래머스 거리두기확인하기 c++ // bfs, check함수 활용방법, 문자열을 배열처럼 활용하는방법 (0) | 2023.11.22 |
프로그래머스 가장 먼 노드 c++ // bfs, 이동거리체크는 bfs (0) | 2023.10.18 |
백준 1926 c++ // bfs, 갯수카운팅 (0) | 2023.09.04 |