백준 16194번 : 카드 구매하기 2

반응형

etc-image-0
https://www.acmicpc.net/problem/16194

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
    int[] p;
    int[] dp;
    public void solution() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        p = new int[n+1];
        dp = new int[n+1];
        for(int i=1; i<=n; i++){
            p[i] = Integer.parseInt(st.nextToken());
        }

        for(int i=1; i<=n; i++){
            dp[i] = p[i];
            for(int j=1; j<=i; j++){
                dp[i] = Math.min(dp[i], dp[j]+dp[i-j]);
            }
        }
        System.out.println(dp[n]);
    }
    public static void main(String args[]) throws IOException {
        new Main().solution();
    }
}

카드 구매하기(https://mokggang.tistory.com/44) 와 같은 풀이에 값만 최솟값을 구해준다.

반응형