#
문제 설명
자연수 x를 y로 변환
순서
매개 변수
x, y, n
이 매개변수반환값
x | y | n | result |
---|---|---|---|
10 | 40 | 5 | 2 |
10 | 40 | 30 | 1 |
2 | 5 | 4 | -1 |
function solution(x, y, n) {
const dp = new Array(y+1).fill(Infinity);
dp[x] = 0;
for(let i = x; i <= y; i++){
dp[i + n] = dp[i+n] > dp[i] + 1 ? dp[i] + 1 : dp[i+n];
dp[i * 2] = dp[i*2] > dp[i] + 1 ? dp[i] + 1 : dp[i*2];
dp[i * 3] = dp[i*3] > dp[i] + 1 ? dp[i] + 1 : dp[i*3];
}
return dp[y]!==Infinity? dp[y] : -1;
}
풀이
DP 를 통해 solution 구하기
- idx 에 해당 값, value 에 해당 카운팅
- x 를 시작으로 각 연산 dp