https://school.programmers.co.kr/learn/courses/30/lessons/1844
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(maps) {
var answer = 0;
// 상 하 좌 우
const vector = [[-1, 0], [1, 0], [0, -1], [0, 1]];
const bfs = () => {
const queue = [[0,0]];
while(queue.length) {
const cur = queue.shift();
if(maps[cur[0]][cur[1]] !== 0) {
const vectors = [];
vector.forEach((v) => {
const x = Number(cur[0])+ Number(v[0]);
const y = Number(cur[1])+ Number(v[1]);
if(x >= 0 && y >= 0 && x < maps.length && y < maps[0].length && maps[x][y] === 1) {
vectors.push([x,y]);
}
});
const prev = maps[cur[0]][cur[1]];
vectors.forEach((v) => {
maps[v[0]][v[1]] = prev+1;
});
queue.push(...vectors);
}
}
}
bfs();
return maps[maps.length-1][maps[0].length-1] === 1 ? -1 : maps[maps.length-1][maps[0].length-1];
}
728x90
'Algorithm&CodingTest > Programmers' 카테고리의 다른 글
[Programmers] 연습문제 - 추억 점수 (0) | 2023.04.22 |
---|---|
[Programmers] 코딩테스트 입문 - 안전지대 (0) | 2023.03.17 |
[Programmers] 그래프 level 3 - 가장 먼 노드 ( 다시 풀어보기 ) (0) | 2023.03.12 |
[Programmers] 연습문제 - 피보나치 수 (0) | 2023.03.08 |
[Programmers] 연습문제 - 숫자의 표현 (0) | 2023.03.08 |