백준 9095 - 1,2,3 더하기 - 자바스크립트
너무 시간을 오래 끌었던 문제
이번 문제에서 규칙을 찾아내기 위해 정말 많은 시간을 보냈지만, 결국에는 구글링…
그래도 거의(?) 근접했다.
node.js 입출력을 잘 이해를 못해서 답은 맞는데… 계속 틀렸습니다
소스코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const input = [];
rl.on('line', function (line) {
input.push(line);
}).on('close', function () {
// 여러줄을 입력받기 위해서는 이 부분부터 코딩
const count = input[0];
const dp = [0, 1, 2, 4];
for (let j = 0; j < count; j += 1) {
let i = 4;
for (; i <= input[j + 1]; i++) {
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}
console.log(dp[input[j + 1]]);
}
process.exit();
});
이 문제는 dp문제로 앞서 푼 문제들과 비슷하게 주어진 결과들을 배열에 저장하는 것이 중요하다
1은 1 총 1개
2는 1+1, 2 총 2개
3은 1+1+1, 2+1, 1+2, 3 총 4개
4는 1+1+1+1, 1+1+2, ... 총 7개
정수 1,2,3의 총 개수를 더하면 4의 개수가 된다.
재귀함수로 풀어내는 방법도 있는데 다시 한번 풀고 정리를 해야겠다.