1부터 경우의 수를 세보면
1일때 0
2일때 1
3일때 3
4일때 6
임을 알 수 있다
위 결과와 n개일 때 n-1 개와 1개로 나눌때를 생각해보면
n-1 개도 각각 나눠질수 있다는걸 생각하면
f(n) = (n - 1) + f(n - 1) 라는 점화식을 찾을 수 있다
결과를 배열에 아래서부터 넣어주면 된다
다이나믹 프로그래밍 문제이다
https://www.acmicpc.net/problem/14606
let input = [];
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input.push(line);
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (inp) => {
let n = Number(inp[0]);
let arr = Array(14).fill(0);
arr[1] = 0;
arr[2] = 1;
arr[3] = 3;
for (let i = 4; i <= 10; i++) {
arr[i] = i - 1 + arr[i - 1];
}
console.log(arr[n]);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 9655/javascript] 돌 게임 (0) | 2022.10.01 |
---|---|
[백준 4659/javascript] 비밀번호 발음하기 (0) | 2022.09.30 |
[백준 11727/javascript] 2Xn 타일링 2 (0) | 2022.09.28 |
[백준 3022/javascript] PRASE (0) | 2022.09.27 |
[백준 9095/javascript] 1, 2, 3 더하기 (0) | 2022.09.27 |
댓글