1, 2, 3 더하기

문제

언어

  • JavaScript

문제 풀이 step 1

  • dp[n] = 정수 n을 1, 2, 3의 합으로 나타내는 방법의 수
  • O + O + … + O = n에서 마지막 O에 올 수 있는 수는 1, 2,3이다.
    • (n - 1) + 1
    • (n - 2) + 2
    • (n - 3) + 3

소스 코드

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

const solution = (input) => {
	const T = parseInt(input[0]);
	const arr = input.slice(1, T + 1).map(Number);

	const dp = [];
	dp[0] = 1;
	dp[1] = 1;
	dp[2] = 2;
	dp[3] = 4;
	for (let i = 4; i < 11; i++) {
		dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
	}

	return arr.map((n) => dp[n]).join("\n");
};

console.log(solution(input));