다이나믹 프로그래밍 문제
경우의 수를 처음부터 세어보면
Math.min(arr[i - 1] + 1, arr[i - 3] + 1)
위와 같은 점화식을 얻을 수 있다
https://www.acmicpc.net/problem/9655
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(1004).fill(0);
let ans;
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
for (let i = 3; i <= n; i++) {
arr[i] = Math.min(arr[i - 1] + 1, arr[i - 3] + 1);
}
if (arr[n] % 2 === 1) {
ans = "SK";
} else {
ans = "CY";
}
console.log(ans);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 9872/javascript] Record Keeping (0) | 2022.10.03 |
---|---|
[백준 1475/javascript] 방 번호 (0) | 2022.10.02 |
[백준 4659/javascript] 비밀번호 발음하기 (0) | 2022.09.30 |
[백준 14606/javascript] 피자 (0) | 2022.09.29 |
[백준 11727/javascript] 2Xn 타일링 2 (0) | 2022.09.28 |
댓글