반응형

문제 1

밑과 지수를 받아들이는 power라는 함수를 작성합니다. 이 함수는 밑의 거듭제곱을 지수로 반환해야 합니다. 이 함수는 Math.pow()의 기능을 모방해야 합니다. 음의 밑과 지수에 대해서는 신경쓰지 마세요.

 

// power(2,0) // 1
// power(2,2) // 4
// power(2,4) // 16

function power(){}

정답

더보기
// power(2,0) // 1
// power(2,2) // 4
// power(2,4) // 16

function power(num, pow){
    if(pow === 0) {
        return 1;
    }
    return num * power(num, pow - 1)
}

 

문제 2

숫자를 받아 해당 숫자의 계승(팩토리얼)을 반환하는 팩토리얼 함수를 작성하시오.

팩토리얼은 정수와 그 아래의 모든 정수의 곱입니다.

예를 들어, 4 팩토리얼 (4!)은 4 * 3 * 2 * 1 = 2입니다. 팩토리얼 0(0!)은 항상 1입니다.

 

//factorial(1) // 1
// factorial(2) // 2
// factorial(4) // 24
// factorial(7) // 5040

function factorial(){
   
}

정답

더보기
//factorial(1) // 1
// factorial(2) // 2
// factorial(4) // 24
// factorial(7) // 5040

function factorial(x){
   if (x < 0 ) {return 0;}
   if (x <= 1 ) {return 1;}
   return x * factorial(x-1);
}

 

문제3

숫자 배열을 받아 모든 숫자의 곱을 반환하는 productOfArray라는 함수를 작성하시오.

 

// productOfArray([1,2,3]) // 6
// productOfArray([1,2,3,10]) // 60

function productOfArray(arr) {}

정답

더보기
function productOfArray(arr) {
    if(arr.length === 0) {
        return 1;
    }
    return arr[0] * productOfArray(arr.slice(1));
}

 

문제4

숫자를 받으면 0부터 함수에 전달된 숫자까지의 모든 숫자를 더하는 recursiveRange라는 함수를 작성하시오.

 

// recursiveRange(6) // 21
// recursiveRange(10) // 55 

function recursiveRange(num){}

정답

더보기
function recursiveRange(x){
   if (x === 0 ) {return 0;}
   return x + recursiveRange(x-1);
}

 

문제5

숫자를 받아 피보나치 수열의 n번째 숫자를 반환하는 fib라는 재귀 함수를 작성하시오. 피보나치 수열은 1, 1로 시작하는 1, 1, 2, 3, 5, 8, ...의 정수의 수열이며, 모든 수는 이전 두 수의 합과 같다는 것을 명심하세요.

 

// fib(4) // 3
// fib(10) // 55
// fib(28) // 317811
// fib(35) // 9227465

function fib(num){}

정답

더보기
// fib(4) // 3
// fib(10) // 55
// fib(28) // 317811
// fib(35) // 9227465

function fib(num){
    if (num <= 2) {
        return 1;
    }
    return fib(num-1) + fib(num-2);
}

 

반응형

'Algorithm > Theory' 카테고리의 다른 글

검색 알고리즘  (0) 2024.07.10
(더 어려운) 재귀 연습 문제 1부  (0) 2024.07.10
재귀 (Recursion)  (0) 2024.07.08
문제 해결 패턴 연습 문제  (0) 2024.07.01
문제 해결 패턴  (0) 2024.06.28
얼은펭귄