우주먼지 개발 log
[javascript] 프로그래머스, 게임 맵 최단거리 (BFS) 본문
반응형
세가지 개발자 본인 입맛대로 구현한,, BFS 코드
https://mocha-blog.tistory.com/227
https://yjg-lab.tistory.com/375
https://jsikim1.tistory.com/311
골자는 같다.
1. 큐의 구현
- (일단만들지 않고 배열을 사용, shift 연산을 사용하여 queue 처럼 사용)
2. BFS의 동작 부분
- 첫 좌표를 큐에 넣어주고
- while 문으로 큐가 빌 때까지 반복
- 무엇을 반복하느냐 ? 상,하,좌,우 살피기
- 살필 때 주의할 부분 작성 : 배열을 벗어나는 부분이 없도록
- 큐에서 꺼낸 값이 마지막 좌표에 도달하면 답으로 체크
마지막 친구꺼 참조하여 타임어택으로 다시 짜봤는데 망함 ㅇ0ㅇ
- javascript 코드 작성시 오타에 극히 주의 할 것 ㅠ.ㅠ
- 특히 length ^.^ lenght 로 썼는데 동작이 다름이 없는데 안되서, 오타찾느라 한세월 걸림
function solution(maps) {
var answer = 0;
const queue = [];
const dx = [0, 0, -1, 1];
const dy = [1, -1, 0, 0];
queue.push([0, 0, 1]);
while(queue.length) {
const [curX, curY, count] = queue.shift();
if(curX===maps.length-1 && curY===maps[0].length-1) return count;
for(let i=0; i<4; i++ ){
let nx = curX+dx[i];
let ny = curY+dy[i];
if(nx >= 0 && nx < maps.length && ny >= 0 && ny < maps[0].length && maps[nx][ny]===1 ) {
queue.push([nx,ny, count+1]);
maps[nx][ny] = 0;
}
}
}
return -1;
}
반응형
'programmers' 카테고리의 다른 글
[javascript] 프로그래머스, 피로도 (완전탐색, DFS) (0) | 2024.04.02 |
---|---|
[javascript] 프로그래머스, 타겟넘버 (DFS) (0) | 2024.03.13 |
[javascript] 코딩테스트 준비 : 문법 정리/문제 링크 (0) | 2024.03.12 |