From 10e33cf0137dbb66df154b3495fdf8c1ef06630d Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:30:57 +0900 Subject: [PATCH] =?UTF-8?q?[20260208]=20BOJ=20/=20G2=20/=20=EB=B3=B4?= =?UTF-8?q?=EC=84=9D=20=EB=8F=84=EB=91=91=20/=20=EC=9D=B4=EC=A4=80?= =?UTF-8?q?=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\354\204\235 \353\217\204\353\221\221.md" | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "JHLEE325/202602/08 BOJ G2 \353\263\264\354\204\235 \353\217\204\353\221\221.md" diff --git "a/JHLEE325/202602/08 BOJ G2 \353\263\264\354\204\235 \353\217\204\353\221\221.md" "b/JHLEE325/202602/08 BOJ G2 \353\263\264\354\204\235 \353\217\204\353\221\221.md" new file mode 100644 index 00000000..a6d5eb66 --- /dev/null +++ "b/JHLEE325/202602/08 BOJ G2 \353\263\264\354\204\235 \353\217\204\353\221\221.md" @@ -0,0 +1,61 @@ +```java +import java.io.*; +import java.util.*; + +class Diamond implements Comparable { + int weight, value; + + public Diamond(int weight, int value) { + this.weight = weight; + this.value = value; + } + + @Override + public int compareTo(Diamond o) { + return this.weight - o.weight; + } +} + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int N = Integer.parseInt(st.nextToken()); + int K = Integer.parseInt(st.nextToken()); + + Diamond[] dia = new Diamond[N]; + for (int i = 0; i < N; i++) { + st = new StringTokenizer(br.readLine()); + int m = Integer.parseInt(st.nextToken()); + int v = Integer.parseInt(st.nextToken()); + dia[i] = new Diamond(m, v); + } + + int[] bags = new int[K]; + for (int i = 0; i < K; i++) { + bags[i] = Integer.parseInt(br.readLine()); + } + + Arrays.sort(dia); + Arrays.sort(bags); + + PriorityQueue pq = new PriorityQueue<>(Collections.reverseOrder()); + long totalPrice = 0; + int diaIdx = 0; + + for (int i = 0; i < K; i++) { + while (diaIdx < N && dia[diaIdx].weight <= bags[i]) { + pq.add(dia[diaIdx].value); + diaIdx++; + } + + if (!pq.isEmpty()) { + totalPrice += pq.poll(); + } + } + + System.out.println(totalPrice); + } +} +```