1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
접근 : DP
Javascript
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.split("\n")
.map((val) => val.trim());
function solution(input) {
let n = +input[0];
let DP = new Array(n + 1).fill(0);
DP[0] = 100000000;
DP[1] = 0;
let i = 2;
while (i <= n) {
let dp1 = i % 3 === 0 ? i / 3 : 0;
let dp2 = i % 2 === 0 ? i / 2 : 0;
let dp3 = i - 1;
DP[i] = Math.min(DP[dp1] + 1, DP[dp2] + 1, DP[dp3] + 1);
i++;
}
console.log(DP[n]);
}
solution(input);
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 7576 토마토 (C++,Javascript) (0) | 2022.06.29 |
---|---|
[baekjoon] 2178 미로탐색 (Javascript,C++) (0) | 2022.06.28 |
[baekjoon] 12904 A와B (Javascript) (0) | 2022.06.24 |
[baekjoon] 2002 추월 (Javascript) (0) | 2022.06.24 |
[baekjoon] 1769 3의 배수 (Javascript) (0) | 2022.06.24 |