728x90
300x250
https://www.acmicpc.net/problem/11052
카드팩 1개만 있을때 최대값
카드팩 2개가 있을때 최대값
카드팩 3개가 있을때 최대값을 구한다. 이전과 비교하며 Max를 취함.
<백준 11052번 Java코드>
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//System.setIn(new FileInputStream("Test.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int card[] = new int[N+1];
int dp[] = new int[N+1];
st = new StringTokenizer(br.readLine());
for (int i = 1; i <= N; i++) {
card[i] = Integer.parseInt(st.nextToken());
}
for (int i = 1; i <= N; i++) {
for (int j = i; j <= N; j++) {
dp[j] = Math.max(dp[j], dp[j-i]+card[i]);
}
}
System.out.println(dp[N]);
}
}
728x90
'알고리즘 > DP' 카테고리의 다른 글
백준 1309번: 동물원 [DP][다이나믹 프로그래밍] -Java (0) | 2024.03.26 |
---|---|
백준 1463번: 1로 만들기 [DP][다이나믹 프로그래밍] - Java 코드 (0) | 2024.03.18 |
백준 11055번: 가장 큰 증가 부분 수열 [DP] - Java (0) | 2020.09.24 |
백준 11053번: 가장 긴 증가하는 부분 수열 [DP][LIS] - Java (0) | 2020.09.22 |
백준 2156번: 포도주 시식 [DP] - Java (0) | 2020.09.21 |