IT/Programmers
[Programmers] 게임 맵 최단 거리
개발자희망생고롸파덕
2024. 3. 11. 14:58
사용 언어 : javascript
lv.2
문제 풀이 소요 시간 : 54분 19초
타입 : DFS/BFS
#문제
#제출코드
function solution(maps) {
let answer = 0;
let visited = Array.from(Array(maps.length), ()=> Array(maps[0].length).fill(0));
let dx = [1,0,-1,0];
let dy = [0,1,0,-1];
let queue = [];
if(maps[maps.length - 1][maps[0].length - 2] === 0 && maps[maps.length - 2][maps[0].length - 1] === 0){
return -1;
}
visited[0][0] = 1;
queue.push([0,0]);
while(queue.length>0){
let [x,y] = queue.shift();
for(let i=0; i<4; i++){
let nx = x+dx[i];
let ny = y+dy[i];
if(nx < 0 || nx >= maps.length || ny < 0 || ny >= maps[0].length || maps[nx][ny] === 0){
continue;
}
if(visited[nx][ny]) continue;
visited[nx][ny] = visited[x][y] +1;
queue.push([nx, ny]);
}
}
answer = visited[maps.length-1][maps[0].length-1];
if(answer === 0){
answer = -1;
}
return answer;
}