250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 JS)게임 맵 최단거리 본문
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
반응형
'프로그래머스 알고리즘 > 2단계' 카테고리의 다른 글
(프로그래머스 C++)가장 큰 수 (0) | 2021.06.01 |
---|---|
(프로그래머스 c++)2개 이하로 다른 비트 (0) | 2021.05.28 |
(프로그래머스 JS)괄호 회전하기 (0) | 2021.05.12 |
(프로그래머스 c++)괄호 회전하기 (0) | 2021.05.12 |
(프로그래머스 JS KAKAO)메뉴 리뉴얼 (0) | 2021.05.11 |