1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | mport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); int N = Integer.parseInt(st.nextToken()); int W = Integer.parseInt(st.nextToken()); int[] price = new int[W+1]; int minNum = Integer.MIN_VALUE; st = new StringTokenizer(br.readLine(), " "); int Wi = Integer.parseInt(st.nextToken()); int Pi = Integer.parseInt(st.nextToken()); for (int i = 0; i < price.length; i++) { if(i>=Wi) { price[i] = (i / Wi) * Pi; }else { price[i] = minNum; } } price[0] = 0; for (int i = 1; i < N; i++) { st = new StringTokenizer(br.readLine(), " "); int w = Integer.parseInt(st.nextToken()); int p = Integer.parseInt(st.nextToken()); for (int j = w; j < price.length; j++) { if(price[j] < price[j-w] + p) { price[j] = price[j-w] + p; } } } int result = -1; for (int i = 0; i < price.length; i++) { if(result < price[i]) { result = price[i]; } } System.out.println(result); } } //2kg 5kg //2 = 1 //7 = 2+5 => 2 //8 = 5+3 => 2 | cs |
'Algorithm 문제풀이' 카테고리의 다른 글
백준2468 안전영역 (2) | 2019.04.09 |
---|---|
백준4963 섬의개수 (2) | 2019.04.09 |
JUNGOL 119구급대 (0) | 2019.03.26 |
백준 N과M(9) (2) | 2019.03.21 |
백준 N과M(8) (0) | 2019.03.21 |