(JAVA)백준온라인 1463번 - 1로 만들기

2023. 9. 9. 19:42백준온라인

아 어렵다
구글링 하면서 계속 반복 연습 하는 수 밖에 없는 것 같다 ㅠㅠ

import java.util.Scanner;

public class Main {

    static int[] dp;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        dp = new int[n+1];

        dp[1] = 0;

        for(int i = 2; i < n + 1; i++){
            dp[i] = dp[i-1] + 1;
            if(i % 2 == 0 && dp[i] > dp[i/2] + 1){
                dp[i] = dp[i/2] + 1;
            }
            if( i % 3 == 0 && dp[i] > dp[i/3] + 1){
                dp[i] = dp[i/3] + 1;
            }
        }
        System.out.println(dp[n]);
    } 

}