Algorithm
[백준] 9095번: 1, 2, 3 만들기 - Node.js (자바스크립트)
sqsung
2023. 6. 5. 12:19
1. 문제 ㅡ 9095번: 1, 2, 3 만들기 (난이도: Silver III)
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
2. 풀이 ㅡ Node.js (자바스크립트)
const [N, ...tcs] = require('fs')
.readFileSync('/dev/stdin')
.toString()
.trim()
.split('\n')
.map(val => +val);
console.log(
(() => {
let answer = '';
// 입력값(정수 n)은 양수이며 11보다 작다
const DP = Array.from({ length: 11 }, () => 0);
// 정수 1, 2, 3을 만들 수 있는 조합의 수
DP[1] = 1;
DP[2] = 2;
DP[3] = 4;
// 점화식에 의거해 DP 배열 정리
for (let i = 4; i < 11; i++) {
DP[i] = DP[i - 1] + DP[i - 2] + DP[i - 3];
}
// answer 변수 업데이트
for (let i = 0; i < N; i++) {
answer += DP[tcs[i]] + '\n';
}
return answer.trim();
})()
);