2023-02-14 TIL(재귀)

JS2L·2023년 2월 14일
0

2번 / 수를 입력받아 홀수인지 여부를 리턴해야 합니다.

function isOdd(num) {
  
  if (num === 0) { // // base case: 0일때 (짝수)
    return false;
  } else if (num === 1) { // base case: 1일때 (홀수)
    return true;
  }

  if (num < 0) { 
    return isOdd(-num); // 절대값 변환
  }
  return isOdd(num - 2); // 양수인 경우 isOdd의 (num)자리에 (num-2)를 넣어 base case가 될때까지 계속 작동
}

4번 / 수(num)를 입력받아 피보나치 수열의 num번째 요소를 리턴해야 합니다.

function fibonacci(num) {
  
if (num <= 1) { //base case 1이 num보다 크거나 같은경우
    return num;
  }

  return fibonacci(num - 1) + fibonacci(num - 2); // 피보나치 수열의 기본 (전의 값 + 전전의값)
}

14번 / 선물 상자에 대한 정보를 담은 배열과 문자열을 입력받아 조건에 맞는 선물이 있는지 여부를 리턴해야 합니다.

function unpackGiftbox(giftBox, wish) {
  
    if(giftBox.length === 0 || wish === ''){ // 빈 배열이거나 빈 문자열이면 false
    return false;
  }

  for (let i = 0; i < giftBox.length; i++) {
    if (giftBox[i] === wish) {
      return true; // 원하는 선물이 있으면 true
    }

    if (Array.isArray(giftBox[i])) { //배열안에 배열이 하나 더 있으면 그 배열안에 원하는 선물이 있는지 확인 
      const result = unpackGiftbox(giftBox[i], wish);
      if (result) {
        return true;
      }
    }
  }
  return false;
profile
신입 개발자의 독고다이 개발일지

0개의 댓글