https://school.programmers.co.kr/learn/courses/30/lessons/1844
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
bfs로 문제를 구하는 방법은 정해져잇으니 외워두자 ~.~
function solution(maps) {
var answer = 0;
const n = maps.length;
const m = maps[0].length;
const directions = [[0, 1], [1, 0], [0, -1], [-1, 0]];
const queue = [[0,0,1]]; //시작지점도 이동한걸로 보기 때문에 1 Q
const visited = Array.from({length:n},()=>Array(m).fill(false));
visited[0][0]=true;
while(queue.length>0){
let [x,y,dist]=queue.shift();
if(x===n-1&&y===m-1)return dist;
for(let [dx,dy] of directions){
let nx = x+dx;
let ny = y+dy;
if(nx>=0 && nx<n && ny>=0 && ny<m && maps[nx][ny]!==0 && !visited[nx][ny]){
queue.push([nx,ny,dist+1]);//다시 이동한 위치 넣어줌
visited[nx][ny]=true; //방문했으니 true로바꿈
}
}
}
return -1;
}
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스/완전탐색] 모의고사 js javascript (0) | 2024.08.27 |
---|---|
[프로그래머스/완전탐색] 최소직사각형 (0) | 2024.08.27 |
[프로그래머스/정렬] 가장 큰 수 js javascript 정말 쉬운 풀이 (0) | 2024.08.21 |
[프로그래머스/정렬] K번째 수 js javascript (0) | 2024.08.21 |
[프로그래머스/해시맵] 폰켓몬 js javascript (0) | 2024.08.21 |