• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

풀이법 질문드립니다.

23.01.13 00:26 작성 조회수 301

0

이렇게 풀어도 되나요?

function solution(n) {
  let answer = [];
  function DFS(L) {
    if (L === 0) return;
    else {
      answer.unshift(L % 2);
      L = Math.floor(L / 2);
      DFS(L);
    }
  }
  DFS(n);
  return answer.join("");
}

답변 1

답변을 작성해보세요.

1

안녕하세요^^

네. 상관없습니다. 하지만 unshift로 배열의 앞쪽에 값을 넣으면 기존 있던 값들이 하나씩 뒤로 밀리는 연산을 해야 하므로 효율적이지는 않습니다. 아래와 같이 영상처럼 하는 것을 추천합니다.

function solution(n) {
  let answer = [];
  function DFS(L) {
    if (L === 0) return;
    else {
      DFS(parseInt(L/2));
      answer.push(L % 2);
    }
  }
  DFS(n);
  return answer.join("");
}