백준 단계별 - 재귀

박상은·2021년 11월 5일
0

🤔 알고리즘 🤔

목록 보기
11/19

1. 10872번 - 팩토리얼

const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = null;
const getFactorial = number => {
  switch (number) {
    case 0:
      return 1;
    case 1:
      return 1;
    default:
      return number * getFactorial(number - 1);
  }
};

rl.on("line", line => {
  input = +line;

  rl.close();
}).on("close", () => {
  // 정답 기록
  let answer = getFactorial(input);

  console.log(answer);

  process.exit();
});

2. 10870번 - 피보나치 수 5

/**
 * 피보나치 수열
 * f(0) = 0
 * f(1) = 1
 * f(2) = f(1) + f(0)
 * f(3) = f(2) + f(1)
 * f(4) = f(3) + f(2)
 * ...
 */
const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = null;
const getFibonacci = number => {
  switch (number) {
    case 0:
    case 1:
      return number;

    default:
      return getFibonacci(number - 1) + getFibonacci(number - 2);
  }
};

rl.on("line", line => {
  input = +line;

  rl.close();
}).on("close", () => {
  // 정답 기록
  let answer = getFibonacci(input);

  console.log(answer);

  process.exit();
});

3. 10872번 - 별 찍기 - 10

/**
 * 답을 보고 풀어도 확신이 없음
 * 문제와 해결방법에 대한 이해는 어느정도 했는데
 * 이 문제를 어떻게 이렇게 생각해서 풀이를 만들었는지
 * 이전 문제까지는 어떻게 생각해서 비효율적이더라도 답을 나오게 풀었는데
 * 이 문제는 답조차 낼수가 없었음
 */

// 다음 기회에 풀어보는걸로...

4. 10872번 - 하노이 탑 이동 순서

/**
 * 애도 일단 패스
 * 재귀함수 너무 어려움
*/

0. 마무리

재귀함수에 대한 기본 개념은 이미 알고 있는 상태에서 시작했다.
팩토리얼이나 피보나치수열같은 경우에는 기존에 찾아보고 풀어본적이 있었는데 이번에는 안보고 그냥 푸닌까 풀렸다.
하지만 별찍기랑 하노이탑은 머리로는 동작이 이해가 가는데 실제로 하려면 어떻게 접근해야할지 모르겠다.
그래서 조금 더 고통받기전에 다른 문제들 풀어보고 나중에 돌아와서 풀려고 한다.

0개의 댓글