재규어 문제 1

야 나 개 ·2021년 11월 9일
0

1번문제

수(num)를 입력받아 1부터 num까지의 합을 리턴해야 합니다.

입출력 예시

let output = sumTo(10);
console.log(output); // --> 55

수도코드
입력된 수가 0 이면 0으로 출력
1이면 1로 출력

이걸 한줄로 줄이고

이게 결과값에

입력된 수보다 -1씩해줘서 더하기 ~~ 끝

정답코드

function sumTo(num) {
  // TODO: 여기에 코드를 작성합니다.
  // 별도의 최적화 기법(memoization)은 금지됩니다.
  if(num === 0){
    return 0;
  }

  if(num === 1){
    return 1;
  }

  return num + sumTo(num - 1)

}

두번째 정답코드

function sumTo(num) {
  // TODO: 여기에 코드를 작성합니다.
  // 별도의 최적화 기법(memoization)은 금지됩니다.
  if(num <= 1){
    return num
  }

  return num + sumTo(num - 1)

}

2번문제

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

예시

let output = isOdd(17);
console.log(output); // --> true

output = isOdd(-8);
console.log(output); // --> false

수도코드
1. 가장 최소의 경우 0,1로 나눈다.
2. 그걸 만족시킬 식을 계속 반복한다.

function isOdd(num) {
  // TODO: 여기에 코드를 작성합니다.
  if(num < 0){
    num = -num;
  }

  if(num === 0){
    return false;
  }

  if(num === 1){
    return true;
  }

  return isOdd(num - 2)

}

3번문제

팩토리얼은 넘어갈께

4번문제

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

0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

예시

let output = fibonacci(5);
console.log(output); // --> 5

수도코드
1.최소값을 0,1로 한다.
2. 반복될 식은 앞앞에 수, 앞수를 더해준다.

정답코드

function fibonacci(num) {
  // TODO: 여기에 코드를 작성합니다.
  // 별도의 최적화 기법(memoization)은 금지됩니다.
  // num 이 0일때는 0을 출력한다. 
  // num 이 1일때는 1을 출력한다. 
  // 반복되는 식은 fi(num - 2) + fi(num - 1);

  if(num === 0){
    return 0;
  }
  if(num === 1){
    return 1;
  }
  return fibonacci(num - 2) + fibonacci(num - 1);
}

다음부터 좀 더 여러워 진다
다들 긴장타라

profile
야 나도 개발자 될 수 있어

0개의 댓글