https://school.programmers.co.kr/learn/courses/30/lessons/154538
문제 분류 : 코딩테스트 연습 > 연습문제 > 숫자 변환하기
난이도 : 2
정답 코드
import java.util.*;
class Solution {
public int solution(int x, int y, int n) {
int [] DP = new int[1000001];
Arrays.fill(DP, 1000001);
DP[x] = 0;
for(int i = x + 1; i <= y ; i++){
if(i % 2 == 0){
DP[i] = Math.min(DP[i], DP[i/2] + 1);
}
if(i % 3 == 0){
DP[i] = Math.min(DP[i], DP[i/3] + 1);
}
if(i - n >= x){
DP[i] = Math.min(DP[i], DP[i - n] + 1);
}
}
if(DP[y] == 1000001) return -1;
return DP[y];
}
}
'Algorithm > Programmers Java' 카테고리의 다른 글
Java 프로그래머스 호텔 대실 (0) | 2024.02.28 |
---|---|
Java 프로그래머스 무인도 여행 (0) | 2024.02.28 |
Java 프로그래머스 시소 짝꿍 (2) | 2024.02.28 |
Java 프로그래머스 피로도 (0) | 2024.02.28 |
Java 프로그래머스 멀리 뛰기 (0) | 2024.02.28 |