https://school.programmers.co.kr/learn/courses/30/lessons/154538
function solution(x, y, n) {
if (x === y) return 0;
const dp = Array.from({ length: y + 1 }).fill(Infinity);
dp[x] = 0;
for (let i = x + 1; i <= y; ++i) {
if (i - n >= 0) dp[i] = dp[i - n] + 1;
if (!(i % 2)) dp[i] = Math.min(dp[Math.floor(i / 2)] + 1, dp[i]);
if (!(i % 3)) dp[i] = Math.min(dp[Math.floor(i / 3)] + 1, dp[i]);
}
return (dp[y] !== Infinity) ? dp[y] : -1;
}
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [3차] 방금그곡 (0) | 2023.03.09 |
---|---|
[Programmers] (2022 KAKAO TECH INTERNSHIP) Lv 2. 두 큐 합 같게 만들기 (0) | 2023.03.09 |
[Programmers] (월간 코드 챌린지 시즌1) Lv 2. 삼각 달팽이 (0) | 2023.03.08 |
[Programmers] (월간 코드 챌린지 시즌1) Lv 2. 쿼드압축 후 개수 세기 (0) | 2023.03.08 |
[Programmers] (월간 코드 챌린지 시즌2) Lv 2. 2개 이하로 다른 비트 (0) | 2023.03.07 |
댓글