[백준] 9095: 1, 2, 3 더하기 - JS (DP)
Algorithm/BackJun 2023. 10. 19.
반응형
목 차
- 문제
- 접근 방식
- 풀이
문제
접근 방식
규칙을 먼저 찾아보자.
1의 경우: 1
2의 경우: 2
3의 경우: 4
4의 경우: 7
5의 경우: 13
6의 경우: 24
4의 경우를 살펴보면 앞에 3개를 더한 값이다. 5의 경우도 직전 3개를 더한 값이다.
만약 저 숫자들이 dp 배열에 있다고 한다면, dp[n] = dp[n-1] + dp[n-2] + dp[n-3]이 된다는 의미이다.
반복문의 조건식은 i <= 10으로 해주고, i는 4부터 시작한다.
3까지는 직접 넣어준다.
const dp = [0, 1, 2, 4];
풀이
const fs = require('fs');
let [n, ...input] = fs.readFileSync('dev/stdin').toString().trim().split('\n');
input = input.map(Number);
const dp = [0, 1, 2, 4];
let i = dp.length;
while(i <= 10){
if(!dp[i]){
dp[i] = dp[i-1]+dp[i-2]+dp[i-3];
};
i++;
}
input.forEach((v) => {
console.log(dp[v]);
});
반응형
'Algorithm > BackJun' 카테고리의 다른 글
[백준] 2042: 구간 합 구하기 - JS (세그먼트 트리) (0) | 2023.12.07 |
---|---|
[백준] 2579: 계단 오르기 - JS (DP) (0) | 2023.10.21 |
[백준] 1717: 집합의 표현 - JS (Union-Find) (0) | 2023.10.17 |
[백준] 1697: 숨바꼭질 - JS (그래프 탐색(DFS&BFS)) (0) | 2023.10.12 |
[백준] 1463: 1로 만들기 - JS (DP) (0) | 2023.10.05 |