백준, 9095 1,2,3 더하기 javascript

otter·2022년 2월 21일
0

백준, 9095 1,2,3 더하기

📖 https://www.acmicpc.net/problem/9095

👨‍💻 문제 풀이

  • 1,2,3이 더해지는 과정에 규칙이 있다.
  • 규칙을 구해, 재귀함수로 문제를 풀었다.

💻 제출한 코드

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');

input.shift();
const arr = input.map(Number);

function solution(n) {
    if(n===1) return 1;
    if(n===2) return 2;
    if(n===3) return 4;

    // return solution(n) + solution(n-1) + solution(n-2);
    // 틀렸다..! 이렇게 하면 solution(4)를 구할 수 없다.
    return solution(n-1) + solution(n-2) + solution(n-3);
}

arr.forEach((item) => console.log(solution(item)))

이번 문제를 풀면서,

  • 지금까지 조금이라도 재귀함수를 써야할 것 같은 문제를 계속해서 피하고 있었는데
  • 더 피하려고 보니까 너무 어려운 문제들밖에 없어서 울며 겨자먹기로 재귀함수를 시작했다.
  • 이 문제는 그나마 쉬운난이도고 직관적이여서 다행이였다. (걱정한 것 보단..)
  • 이 문제는 DP로도 풀 수 있다!
profile
http://otter-log.world 로 이사했어요!

0개의 댓글