Hyunebee
배낭에 짐싸기 본문

public class Practice3 {
public static int solution(int[][] items, int n, int k) {
int[][] dp = new int[n+1][k+1];
int result = 0;
for(int i = 0; i < n; i++){
for(int j = 1; j <= k; j++){//무게가 충족될떄 까지
if(items[i][0] > j){// 무게 총량이 넘어간 경우
dp[i+1][j] = dp[i][j];// 그전 무게로 전부 채워줌
}else{
dp[i + 1][j] = Math.max(dp[i][j], dp[i][j-items[i][0]] + items[i][1]);
}
}
}
return dp[n][k];
}
public static void main(String[] args) {
// Test code
int[][] items = {{6, 13}, {4, 8}, {3, 6}, {5, 12}};
System.out.println(solution(items, 4, 7)); // 14
}
}
'Java > 코테' 카테고리의 다른 글
두 노드를 지나는 최소 비용 (0) | 2022.06.02 |
---|---|
연속되는 최대 부분수열 (0) | 2022.05.31 |
노드 정렬하기 (0) | 2022.05.26 |
연속된 수중 가장 큰값을 리턴하는 부분수열 (0) | 2022.05.26 |
최대 강연료는 얼마? (0) | 2022.05.19 |