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

sarah.mun16님의 프로필 이미지
sarah.mun16

작성한 질문수

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

4. 미로탐색

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

작성

·

262

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방향을 탐색할 수도 있습니다. 그럴때는 반복문으로 하는게 코드가 간결해 보입니다.

sarah.mun16님의 프로필 이미지
sarah.mun16

작성한 질문수

질문하기