언젠가는 펼쳐 볼 아카이브
[Programmers] 게임 맵 최단 거리 본문
사용 언어 : 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;
}
'IT > Programmers' 카테고리의 다른 글
[Programmers] 네트워크 (0) | 2024.03.18 |
---|---|
[Programmers] 폰켓몬 (0) | 2024.03.11 |
[Programmers] 타겟 넘버 (0) | 2024.03.11 |
[Programmers] 문자열 나누기 (0) | 2024.03.07 |
[Programmers] 바탕화면 정리 (0) | 2024.03.04 |