inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

2진법 변환 재귀적 접근 방법에 관해 질문 있습니다.

432

짱구

작성한 질문수 28

0

안녕하세요~ 제로초님,  요즘 재귀함수가 너무 어려워서 ㅠ.ㅠ 다양한 문제로 연습해보고 있는데요.

10진수를 2진수를 변환하는 문제를 이런 식으로 재귀적으로 풀어봤어요~

코드는 다 정상적으로 작동하는데... 사실 그래서 너무 혼란스러워요.

함수가 스스로 불려질 때마다, result가 빈 문자열로 초기화 되는데, 어떻게 최종적으로 result 값이 정상적으로 나오는 지 모르겠어요.

이 문제를 해결해보려고, 콘솔 로그도 여러 곳에 심어봤는데, result는 다 빈 문자열로 떠서, 너무 이해가 안 되네요ㅠ

어떻게 코드가 ( = result 가 ) 아무 문제 없이 잘 작동하는 건가요?? ㅠ.ㅠ

function binaryNum(num){
 let result = '';
  
  // base case
  if( num <= 1 ){
    return result + num;  
  }
  
  if( num%2 === 0 ){
    num = parseInt( num/2 );
    return binaryNum(num) + '0';
  }
  
  if( num%2 === 1 ){
    num = parseInt( num/2 );
    return binaryNum(num) + '1';
  }
  
}

binaryNum(10); // => 출력값 : 1010

재귀 javascript recursion

답변 2

3

제로초(조현영)

result의 용도는 마지막에 result + num(사실상 '' + num)을 해서 숫자를 문자열로 바꾸는 역할정도밖에 안 됩니다.

num이 핵심이지 result는 의미 없습니다.

1

ODeorain

와 덕분에 재귀적으로 이진법 변환하는거 배워갑니다!! 
작성해주신 코드 보면서 중복되는 부분이 있어서 더 줄여봤어요!

function toBinary(val){
        val = parseInt(val);
       
        if(val <= 1){return String(val);}

        const quotient = String(parseInt(val / 2));
        const remainder = String(val % 2);

        return toBinary(quotient) + remainder;
}//toBinary

자바스크립트 입문 강의 재생 안됨

0

78

2

쿵쿵따 조건문 질문입니다.

0

74

2

렛츠가릿 자바스트립트와 공유가 되나요

0

77

1

수강을 하기 전 공부순서에 관한 질문이 있습니다.

1

102

2

안녕하세요

0

101

2

1~45 필터링하는 코드에서 find대신 some써주는게 나을거같습니다.

1

76

2

고차 함수 작성법과 수업 진도 관련한 질문

0

82

3

break와 continue 9:55 내 continue 구문 질문

0

153

2

옵셔널 체이닝 적당한 깊이는 어느 정도인가요?

0

121

2

로또 추첨기 중 입력값을 검사할 때

0

138

2

2-14.else,else if,switch 관련 질문입니다.

0

110

2

가위바위보 이미지(rsp.png)가 안보여요

0

265

3

Math.random() 에 9을 곱하는 이유

0

175

4

클로저 관련해서 질문있습니다.

1

190

2

유튜브 댓글 보고 왔습니다!- 퀴즈 중복된 숫자 검사 for 문

0

246

1

event.target.textContent관련 질문

0

274

2

객체 참조 관련 질문

0

179

1

-2+ -2 = -4 음수 더하기 음수 - 셀프체크 계산기

0

467

1

별찍기 마름모 문제입니다.

0

352

2

숙제 질문

0

217

1

5강 async/await으로 가독성 높이기에서

0

232

1

야구게임 관련 질문입니다

0

186

1

쿵쿵따, 계산기에서 변수 선언

0

181

1

지뢰 힌트 사라짐(대괄호)

0

167

1