언젠가는 펼쳐 볼 아카이브

[Programmers] 게임 맵 최단 거리 본문

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;
}

 

'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