본문 바로가기
알고리즘/백준

백준 1463 1로 만들기 (자바)

by 김어찐 2021. 9. 14.
728x90
import java.util.Scanner;

public class algo_1463_김어진 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int num = sc.nextInt();
		int[] dp = new int[num+1];
		if(num==1) {
			System.out.println(0);
			return;
		}
		else if(num==2) {
			System.out.println(1);
			return;
		}
		dp[1]=0;
		dp[2]=1;
		for (int i = 3; i <= num; i++) {
			int minValue=Integer.MAX_VALUE;
			if(i%3==0) {
				minValue = Math.min(minValue, dp[i/3]);
			}
			if(i%2==0) {
				minValue = Math.min(minValue, dp[i/2]);
			}
			minValue = Math.min(minValue, dp[i-1]);
			dp[i]=minValue+1;
		}
		System.out.println(dp[num]);
	}
}
728x90