• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

코드 질문드립니다!

21.10.07 11:38 작성 조회수 107

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

질문자

2021.10.12

감사합니다. :)