코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘 : bfs
function solution(maps) {
let input = maps;
let n = input.length;
let m = input[0].length;
let vis = new Array(n).fill().map((v) => new Array(m).fill(0));
let dx = [0, 1, 0, -1];
let dy = [1, 0, -1, 0];
const bfs = (x, y) => {
let queue = [];
vis[x][y] = 1;
queue.push([x, y]);
while (queue.length) {
let [cx, cy] = queue.shift();
for (let dir = 0; dir < 4; dir++) {
let nx = cx + dx[dir];
let ny = cy + dy[dir];
if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
if (input[nx][ny] === 0 || vis[nx][ny] !== 0) continue;
vis[nx][ny] = vis[cx][cy] + 1;
queue.push([nx, ny]);
}
}
};
bfs(0, 0);
return vis[n - 1][m - 1] ? vis[n-1][m-1]:-1;
}
'코딩테스트(알고리즘) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 호텔대실 (Javascript) (0) | 2023.02.09 |
---|---|
[프로그래머스] 2 x n 타일링 (Javascript) (0) | 2023.02.07 |
[프로그래머스] 괄호 변환 (Javascript) (0) | 2022.07.01 |
[프로그래머스] 멀쩡한 사각형 (Javascript) (0) | 2022.06.30 |
[프로그래머스] 오픈채팅방 (Javascript) (0) | 2022.06.30 |