묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
sumArray()재귀함수 이해가 안됩니다!
sumArray 함수에서 return 값인sumArray(arr.slice(0, -1)) + arr[arr.length - 1] 구문이 이해가 잘 안되는데arr.slice(0, -1) 은 [1, 2, 3, 4]이고arr[arr.length - 1]은 5인데[1, 2, 3, 4] + 5 값으로는 1, 2, 3, 4, 55 나와야 되는게 아닌가요??어째서 sumArray([1, 2, 3, 4])를 줬다고 해서1 + 2 + 3 + 4 가 되는 지 모르겠습니다.만약 그렇게 되려면 아래 같은 로직이라고 있어야되는거 아닌가요?? let plus = 0; arr.forEach(el => { plus += el });도저히 이해가 안되네요 도와주시면 감사하겠습니다!!
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
2진법 변환 재귀적 접근 방법에 관해 질문 있습니다.
안녕하세요~ 제로초님, 요즘 재귀함수가 너무 어려워서 ㅠ.ㅠ 다양한 문제로 연습해보고 있는데요. 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
-
미해결제주코딩베이스캠프 Code Festival: JavaScript 100제
2진법 변환 문제 관해서 질문있습니다.
선생님께서 보여주신 재귀함수 풀이법 말고, 저는 처음에 이런 식으로 시도해봤는데요. 값들이 다 잘 나오는데, 사실 그래서 많이 혼란스럽니다. 함수가 스스로 불려질 때마다, 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);