https://www.acmicpc.net/problem/16194
풀이
카드팩들의 가격이 주어진다. 카드 i개가 포함된 카드팩의 가격은 Pi원이다.
dp 배열을 최대값으로 초기화 해주고, 탐색을 진행했다.
dp[0] + card[n]
dp[1] + card[n - 1]
.
.
.
dp[n] + card[0]
`dp[n]` 은 위 경우 중 최소가 되는 값이다.
메모리: 14528KB
시간: 144ms
언어: Java 11
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] card = new int[n + 1];
int[] dp = new int[n + 1];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 1; i < n + 1; i++) {
card[i] = Integer.parseInt(st.nextToken());
dp[i] = Integer.MAX_VALUE;
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j <= i; j++) {
dp[i] = Math.min(dp[i], dp[i - j] + card[j]);
}
}
System.out.println(dp[n]);
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 1263: 시간 관리 - JAVA (0) | 2024.05.31 |
---|---|
[백준] 17953: 디저트 - JAVA (0) | 2024.05.30 |
[백준] 16472: 고냥이 - JAVA (0) | 2024.05.29 |
[백준] 1577: 도로의 개수 - JAVA (1) | 2024.05.23 |
[백준] 15591: MooTube (Silver) - JAVA (0) | 2024.05.20 |
[백준] 15971: 두 로봇 - JAVA (0) | 2024.05.19 |