• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

미로 탐색 코드 리뷰 부탁드립니다!

23.09.29 18:06 작성 조회수 177

0

반복문을 안 쓰고 짜 봤는데 답은 그대로 나오지만 이렇게 짜도 되는 건지 궁금합니다.

1로 바꿔줬다가 0으로 바꿔주는 시점을 이렇게 해도 괜찮을까요??

 

풀이에서는 DFS 돌아올 때마다 해주시는 것 같아서 질문 드립니다!

 


const solution = (miro) => {
  let ans = 0;
  const DFS = (N, M) => {
    if (N < 0 || M < 0 || N > 6 || M > 6) return;
    if (M === 6 && N === 6) {
      ans++;
    } else {
      if (miro[N][M] === 0) {
        miro[N][M] = 1;
        DFS(N - 1, M);
        DFS(N, M - 1);
        DFS(N + 1, M);
        DFS(N, M + 1);
        miro[N][M] = 0;
      }
    }
  };
  DFS(0, 0);
  return ans;
};

console.log(
  solution([
    [0, 0, 0, 0, 0, 0, 0],
    [0, 1, 1, 1, 1, 1, 0],
    [0, 0, 0, 1, 0, 0, 0],
    [1, 1, 0, 1, 0, 1, 1],
    [1, 1, 0, 0, 0, 0, 1],
    [1, 1, 0, 1, 1, 0, 0],
    [1, 0, 0, 0, 0, 0, 0],
  ])
);

답변 1

답변을 작성해보세요.

0

안녕하세요^^

네. 위에 처럼 해도 되지만 영상처럼 하는 것을 추천합니다. 네 방향이 아니라 대각선까지 8방향을 탐색할 수도 있습니다. 그럴때는 반복문으로 하는게 코드가 간결해 보입니다.