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

빙봉님의 프로필 이미지
빙봉

작성한 질문수

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

2. 이진수 출력(재귀)

풀이법 질문드립니다.

작성

·

355

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("");
}

 

 

빙봉님의 프로필 이미지
빙봉

작성한 질문수

질문하기