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;