인프런 커뮤니티 질문&답변

안영우1님의 프로필 이미지
안영우1

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

6. 송아지 찾기(BFS)

코드 질문드립니다!

작성

·

164

0

안녕하세요 선생님. 항상 질 좋은 강의 감사드립니다. 다름이 아니라 다음과 같이  코드를 작성했는데, 괜찮은 코드인지 여쭤보고 싶습니다. 그리고 강의 코드에서 조건문에 `nv>0 && nv<=10000`와 같이 작성한 코드는 입력으로 주어진 시작지점에서 도착지점을 찾지 못할 때를 방어하려고 작성한건지 궁금합니다.

let s = 5;
let e = 14;

console.log(solution(s, e));

function solution(s, e){
  let queue = [];
  let visited = Array.from({length: e}, () => 0);
  queue.push([s, 0]);
  visited[s] = 1;

  while (queue.length){
    let [v, time] = queue.shift();
    
    if (v === e) return time;
    
    for (let nv of [v+1, v-1, v+5]){
      if(!visited[nv] && nv>0 && nv<=10000){
        visited[nv]=1;
        queue.push([nv, time+1]);
      }
    }
    
  }

}

 

 

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘하신 코드입니다. 

`nv>0 && nv<=10000` 한 이유는 좌표가 1부터 10000까지로 정해져 있기 때문에 범위를 벗어나면 안되서 그렇게 했습니다.

 

 

안영우1님의 프로필 이미지
안영우1
질문자

감사합니다. :)

안영우1님의 프로필 이미지
안영우1

작성한 질문수

질문하기