프로그래머스 알고리즘/2단계
(프로그래머스 JS)게임 맵 최단거리
naeunchan
2021. 5. 12. 16:28
728x90
반응형
programmers.co.kr/learn/courses/30/lessons/1844?language=javascript
코딩테스트 연습 - 게임 맵 최단거리
[[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1
programmers.co.kr
function solution(maps) {
let answer = 1;
const visited = maps;
const queue = [];
const directX = [-1, 1, 0, 0];
const directY = [0, 0, -1, 1];
const n = maps.length;
const m = maps[0].length;
queue.push([0, 0]);
visited[0][0] = 0;
while(queue.length > 0){
const size = queue.length;
for(let i = 0; i < size; i++){
const [x, y] = queue.shift();
for(let j = 0; j < 4; j++){
const nx = x + directX[j];
const ny = y + directY[j];
if(nx >= 0 && nx < n && ny >= 0 && ny < m && visited[nx][ny] === 1){
if(nx == n - 1 && ny == m - 1){
return ++answer;
}
queue.push([nx, ny]);
visited[nx][ny] = 0;
}
}
}
answer++;
}
return -1;
}
728x90
반응형