문제 요약
BOJ 9095 1, 2, 3 더하기
- 입력: 테스트 케이스의 개수와 정수가 주어진다.
- 출력: 1, 2, 3의 합으로 주어진 정수를 나타낼 수 있는 방법의 개수를 출력하라.
풀이
- 동적 프로그래밍으로 주어진 문제에 대한 점화식을 세운다.
- 초기값을 활용해 계산 결과를 저장한 후 테스트 케이스마다 결과를 출력한다.
내 풀이
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let cnt = 0;
const input = () => stdin[cnt++];
let stdin = [];
rl.on("line", function (line) {
stdin.push(line);
}).on("close", function () {
let T = input();
let result = [];
let arr = [];
arr[1] = 1;
arr[2] = 2;
arr[3] = 4;
for (let i = 4; i <= 11; i++) arr[i] = arr[i - 1] + arr[i - 2] + arr[i - 3];
while (T--) result.push(arr[input()]);
console.log(result.join("\n"));
process.exit();
});
- 주어진 수를 나타내는 방법을 +1, +2, +3하는 경우로 분류하였다.