boj)1463 - 1로 만들기
2020. 9. 16. 17:37ㆍPS/boj
import java.io.*;
// # 1로 만들기
public class boj_1463 {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static int[] dp = new int[1000001];
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(br.readLine());
dp[2] = 1; dp[3] = 1;
for (int i = 4; i <= n; i++) {
if (i % 3 == 0) {
dp[i] = Math.min(dp[i/3], dp[i-1]) + 1;
} else if (i % 2 == 0) {
dp[i] = Math.min(dp[i/2], dp[i-1]) + 1;
} else {
dp[i] = dp[i-1] + 1;
}
}
System.out.println(dp[n]);
}
}
- DP 문제
- 밑에서부터 n까지 하나씩 dp 테이블에 쌓았다.
'PS > boj' 카테고리의 다른 글
boj)11727 - 2xn 타일링 2 (0) | 2020.09.16 |
---|---|
boj)11726 - 2xn 타일링 (0) | 2020.09.16 |
boj)17103 - 골드바흐 파티션 (0) | 2020.09.16 |
boj)1212 - 8진수 2진수 (0) | 2020.09.16 |
boj)1373 - 2진수 8진수 (0) | 2020.09.16 |