[DP] 백준 1463 1로 만들기 JAVAAlgorithm2024. 4. 9. 13:45
Table of Contents
package com.test.dynamicProgramming;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class DP_2_1463 {
public static void main(String[] args) throws Exception{
// [DP] 1463 1로 만들기
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
//DP테이블 : i를 1로 만들 때 연산하는 횟수의 최솟값
int dp[] = new int[n + 1];
for (int i = 2 ; i <= n ; i++) {
dp[i] = dp[i-1] + 1;
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);
}
}
System.out.println(dp[n]);
}
}
시간복잡도 : O(n)
'Algorithm' 카테고리의 다른 글
| [완전탐색] 백준 1018 체스판 다시 칠하기 JAVA (0) | 2024.04.09 |
|---|---|
| [그리디] 백준 2217 로프 JAVA (0) | 2024.04.09 |
| [DFS] 백준 1012 유기농배추 JAVA (0) | 2024.04.08 |
| [구현] 백준 1157 단어 공부 JAVA (0) | 2024.04.04 |
| [구현] 백준 2979 트럭주차 JAVA (0) | 2024.04.04 |