boj)1463 - 1로 만들기

2020. 9. 16. 17:37PS/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