package algo.DP;
public class DP {
public static void main(String[] args){
int d[] = new int[1000005];
int n;
//매개변수 입력
n = 10;
d[1] = 0;
for(int i=2; i<=n; i++){ //2부터 시작 조심
d[i] = d[i-1]+1;
if(i%2 == 0) d[i] = Math.min(d[i], d[i/2]+1);
if(i%3 == 0) d[i] = Math.min(d[i], d[i/3]+1);
}
System.out.println(d[n]);
}
}
출처: https://blog.encrypted.gg/974?category=773649
[실전 알고리즘] 0x10강 - 다이나믹 프로그래밍
안녕하세요, 이번 시간에는 다이나믹 프로그래밍을 다룹니다. 직전까지 막 재귀, 백트래킹, 정렬 이런 것들로 되게 고통받으셨을텐데 오늘껀 개념도 그렇게 어렵지 않고 구현 난이도도 낮아서
blog.encrypted.gg
'교육 > 알고리즘' 카테고리의 다른 글
[JAVA] Greedy (0) | 2022.08.03 |
---|---|
[JAVA] Backtracking (0) | 2022.08.03 |
[JAVA] BFS (0) | 2022.08.03 |
[JAVA] DFS (0) | 2022.08.03 |