01-07 02:28
Recent Posts
Recent Comments
Tags
- TSQL
- RaspberryPi
- ์จ์ผ๋ํ
- DB
- SQL
- ํ์ด์ฌ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ์คํฝ๋ ํ
- python
- appetizer
- API๋ง์ผํ๋ ์ด์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- DATABASE
- ICT
- ์ด๋ธ์
- linux
- Naver Cloud
- Spring
- ์๋ฐ
- Java
- ํ๋ก๋ณด๋ ธ
- ict๊ณต๋ชจ์
- ํ์ด์
- JOBํ๊ณ
- ์กํ๊ณ
- ์๋์ด๋ ธ
- mysql
- ICT๋ฉํ ๋ง
- ํ์ด์๊ณต๋ชจ์
- ์คํฝ์ค๋น
- Today
- Total
miinsun
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_71 ์ต๋ ์์ ์ค์ผ์ฅด :: PriorityQueue ๋ณธ๋ฌธ
Algorithm/Java
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_71 ์ต๋ ์์ ์ค์ผ์ฅด :: PriorityQueue
miinsun 2022. 3. 9. 21:50
๐ฌ ๋ฌธ์ ์ค๋ช
ํ์๋ ์ ๋ช ํ ๊ฐ์ฐ์์ด๋ค. N๊ฐ์ด ๊ธฐ์ ์์ ๊ฐ์ฐ ์์ฒญ์ ํด์๋ค.
๊ฐ ๊ธฐ์ ์ D์ผ ์์ ์์ ๊ฐ์ฐ์ ํด ์ฃผ๋ฉด M๋งํผ์ ๊ฐ์ฐ๋ฃ๋ฅผ ์ฃผ๊ธฐ๋ก ํ๋ค.
๊ฐ ๊ธฐ์ ์ด ์์ฒญํ D์ M๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ฅ ๋ง์ ๋์ ๋ฒ ์ ์๋๋ก ๊ฐ์ฐ ์ค์ผ์ฅด์ ์ง์ผ ํ๋ค.
๋จ ๊ฐ์ฐ์ ํน์ฑ์ ํ์๋ ํ๋ฃจ์ ํ๋์ ๊ธฐ์ ์์๋ง ๊ฐ์ฐ์ ํ ์ ์๋ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ฒซ ๋ฒ์งธ ์ค์ ์์ฐ์ N(1<=N<=10,000)์ด ์ฃผ์ด์ง๊ณ
- ๋ค์ N๊ฐ์ ์ค์ M(1<=M<=10,000)๊ณผ D(1<=D<=10,000)๊ฐ ์ฐจ๋ก๋ก ์ฃผ์ด์ง๋ค.
6
50 2
20 1
40 2
60 3
30 3
30 1
์ถ๋ ฅ - ์ฒซ ๋ฒ์งธ ์ค์ ์ต๋๋ก ๋ฒ ์ ์๋ ์์ ์ ์ถ๋ ฅํ๋ค.
150
โ
๐ป Solution.java
/* ์ต๋ ์์
์ค์ผ์ฅด :: Priority Queue */
import java.util.*;
class Lecture implements Comparable<Lecture>{
public int money;
public int time;
Lecture(int money, int time){
this.money = money;
this.time = time;
}
@Override
public int compareTo(Lecture o) { //object๊ฐ ๋ ํฌ๋ฉด ์์ ๋ฆฌํด, this๊ฐ ๋ ํฌ๋ฉด ์์ ๋ฆฌํด, ๊ฐ์ ๊ฐ์ 0 ๋ฆฌํด
return o.time - this.time; // Object์์ ์ง๊ธ ๊ฐ ๋นผ๋ฉด ๋ด๋ฆผ์ฐจ ์
}
}
public class Main {
static int max = Integer.MIN_VALUE, n;
public int solution(ArrayList<Lecture> arr, int n) {
int answer = 0;
PriorityQueue<Integer> pQ = new PriorityQueue<>(Collections.reverseOrder()); // ์ ์ผ ํฐ ๊ฐ์ ์ฐ์ ์์๋ก ์
Collections.sort(arr);
int j = 0;
for(int i = max; i >= 1; i--) {
for(; j < n; j++) {
if(arr.get(j).time < i) break;
pQ.offer(arr.get(j).money);
}
if(!pQ.isEmpty()) answer += pQ.poll(); // ๊ฐ์ฅ ํฐ ๊ฐ์ poll
}
return answer;
}
public static void main(String[] args){
Main main = new Main();
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
ArrayList<Lecture> arr = new ArrayList<>();
for(int i = 0; i < n; i++) {
int m = sc.nextInt();
int d = sc.nextInt();
arr.add(new Lecture(m, d));
if(d > max) max = d;
}
System.out.println(main.solution(arr, n));
sc.close();
return ;
}
}
'Algorithm > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_73 ๋๋ค๋ฆฌ ๊ฑด๋๊ธฐ :: DynamicProgramming (0) | 2022.03.12 |
---|---|
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_72 ๊ณ๋จ ์ค๋ฅด๊ธฐ :: DynamicProgramming (0) | 2022.03.12 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_70 ํผ์ ๋ฐฐ๋ฌ ๊ฑฐ๋ฆฌ : DFS (0) | 2022.03.09 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_69 ๊ฒฐํผ์ (0) | 2022.03.08 |
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_68 ํ์์ค ๋ฐฐ์ (0) | 2022.03.08 |
Comments