코딩테스트/백준

[백준] 1로 만들기 1463 - JAVA

ankisile 2023. 6. 18. 02:44

문제

https://www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

 

코드

import java.io.*;
import java.util.*;

class Main {
	
	public static void main(String args[]) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));		
		
		int n = Integer.parseInt(br.readLine());
		
		int dp [] = new int [n+1];
		
		dp[1] = 0;
		
		
		for(int i=2;i<=n;i++) {
			dp[i] = dp[i-1] + 1;
			if(i % 2 == 0) {
				dp[i] = Math.min(dp[i/2] + 1,  dp[i]);
			}
			if(i % 3 == 0) {
				dp[i] = Math.min( dp[i/3] + 1,  dp[i]);
			}
			
			
		}
		
		System.out.print(dp[n]);
	}	
	
}