[Java] BOJ 1202 - ๋ณด์ ๋๋Problem Solving/Baekjoon Online Judge (BOJ)2025. 5. 6. 14:21
Table of Contents

01. ๐ ๋ฌธ์ ํ์
N: ๋ณด์์ ๊ฐ์, K: ๊ฐ๋ฐฉ์ ๊ฐ์
$M_i, V_i$: ๋ณด์์ ๋ฌด๊ฒ์ ๊ฐ์น
$C_i$: ๊ฐ๋ฐฉ์ ๋ด์ ์ ์๋ ๋ณด์์ ์ต๋ ๋ฌด๊ฒ
- ํ๋์ ๊ฐ๋ฐฉ์๋ ํ๋์ ๋ณด์๋ง ๋ด์ ์ ์์
- ๊ฐ ๊ฐ๋ฐฉ์ ๋ณด์์ ๋ด์์ ๋, ๊ฐ์ ธ๊ฐ ์ ์๋ ์ต๋ ๊ฐ์น๋ฅผ ์ถ๋ ฅ
01-1. ์๊ณ ๋ฆฌ์ฆ ์ ํ & ์๊ฐ ๋ณต์ก๋
- ๊ฐ ๊ฐ๋ฐฉ์ ์ฃผ์ด์ง ๋ฌด๊ฒ์ ๋ํด, ๋ฃ์ ์ ์๋ ์ต๋ ๊ฐ์น์ ๋ณด์์ ๋ฃ์ผ๋ฉด ๋๋ ๊ทธ๋ฆฌ๋ ๋ฌธ์
- ์ ๋ ฌ์ ํตํด ๋ณด์๊ณผ ๊ฐ๋ฐฉ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ, ํ์ํ์ฌ ๋ด์ ์ ์๋ ๋ณด์์ ์ ์ ์์
- ๋ด์ ์ ์๋ ๋ณด์์ ํ๋จ ํ, ์ฐ์ ์์ํ๋ฅผ ์ด์ฉํ์ฌ ๊ทธ ์ค ์ต๋ ๊ฐ์น๋ฅผ ๊ณจ๋ผ๋ผ ์ ์์
02. ๐ ์ฝ๋ ์ค๊ณํ๊ธฐ
- ๋ณด์๊ณผ ๊ฐ๋ฐฉ์ ์ ๋ณด๋ฅผ ์ ๋ ฅ
- ๋ณด์๊ณผ ๊ฐ๋ฐฉ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
- ๊ฐ๋ฐฉ์ ์์ฐจ์ ์ผ๋ก ํ์
- ํ์ฌ ์ ํ๋ ๊ฐ๋ฐฉ์ ๋ค์ด๊ฐ ์ ์๋ ๋ณด์์ ํ์ํ์ฌ ์ฐ์ ์์ํ์ ๋ฃ์
- ์ฐ์ ์์ํ์ ์์๊ฐ ์๋ค๋ฉด ์ต๋ ๊ฐ์ ๊บผ๋ด์ด ๊ฐ๋ฐฉ์ ๋ฃ๊ณ (ํฉ๊ณ ๋์ ), ์๋ค๋ฉด ์๋ฌด๊ฒ๋ ๋ฃ์ง ์์
- ๊ฐ๋ฐฉ ์์ ๋ค์ด๊ฐ ๋ณด์์ ๊ฐ์น(์ดํฉ)๋ฅผ ์ถ๋ ฅ
03. ๐ ๏ธ ์๋๋ณ ์์
04. ๐๏ธ ์ ๋ต ์ฝ๋
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static StringTokenizer st;
public static class Pair implements Comparable<Pair>{
int M, V;
Pair(int m, int v){
this.M = m;
this.V = v;
}
@Override
public int compareTo(Pair o){
return this.M - o.M;
}
}
static int N, K;
static Pair[] jewel;
static int[] bag;
public static void main(String[] args) throws IOException {
st = new StringTokenizer(br.readLine());
N = Integer.valueOf(st.nextToken());
K = Integer.valueOf(st.nextToken());
jewel = new Pair[N];
for(int i = 0; i < N; i++){
st = new StringTokenizer(br.readLine());
int m = Integer.valueOf(st.nextToken());
int v = Integer.valueOf(st.nextToken());
jewel[i] = new Pair(m, v);
}
Arrays.sort(jewel);
bag = new int[K];
for(int i = 0; i < K; i++){
int c = Integer.valueOf(br.readLine());
bag[i] = c;
}
Arrays.sort(bag);
PriorityQueue<Integer> pq = new PriorityQueue<>(Comparator.reverseOrder());
long sum = 0;
int idx = 0;
for(int i = 0; i < K; i++){
int bagSize = bag[i];
while(idx < N && jewel[idx].M <= bagSize){
pq.offer(jewel[idx].V);
idx++;
}
if(!pq.isEmpty()) sum += (1L*pq.poll());
}
bw.write(sum + "\n");
bw.flush();
bw.close();
br.close();
}
}
'Problem Solving > Baekjoon Online Judge (BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Java] BOJ 10942 - ํฐ๋ฆฐ๋๋กฌ? (0) | 2025.05.08 |
|---|---|
| [Java] BOJ 2263 - ํธ๋ฆฌ์ ์ํ (0) | 2025.05.03 |
| [Java] BOJ 11049 - ํ๋ ฌ ๊ณฑ์ ์์ (0) | 2025.05.01 |
| [Java] BOJ 1005 - ACM Craft (0) | 2025.04.29 |
| [Java] BOJ 2842 - ์ง๋ฐฐ์ ํ์๋ (0) | 2025.04.27 |
@ONE_ :: ์ ํธ์
์๋ชป๋ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๋ง์ํด์ฃผ์ธ์!