https://softeer.ai/practice/info.do?idx=1&eid=395&sw_prbl_sbms_sn=213446
Softeer
์ฐ์ต๋ฌธ์ ๋ฅผ ๋ด์ Set์ ์ ํํด์ฃผ์ธ์. ์ทจ์ ํ์ธ
softeer.ai
1. ๋ฌธ์
๋ฐฐ๋ญ์ ๋ค์ด๊ฐ ์ ์๋ ์ต๋ ๋ฌด๊ฒ W, ๊ท๊ธ์ ์ข ๋ฅ ๊ฐ์ turn์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋๋ค.
๋ฐฐ๋ญ์ ์ฑ์ธ ์ ์๋ ๊ฐ์ฅ ๋น์ผ ๊ฐ๊ฒฉ์ ๊ตฌํด ์ถ๋ ฅํ๋ค.
2. ํ์ด
๊ฐ๋จํ ๊ตฌํ ๋ฌธ์ ์ด๋ค.
1. ๊ฐ๊ฒฉ ๋์ ์์ผ๋ก ์ ๋ ฌํ๋ pq๋ฅผ ์ฌ์ฉํ๋ค.
2. pq๊ฐ ๋น์ง ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉฐ
- ๋ค์ ๊ท๊ธ์์ ๋ฌด๊ฒ๊ฐ ๋จ์ ๋ฌด๊ฒ๋ณด๋ค ํด ๊ฒฝ์ฐ, ans ๊ฐฑ์ , ๋ฐ๋ณต๋ฌธ break;
- ๋ค์ ๊ท๊ธ์์ ๋ฌด๊ฒ๊ฐ ๋จ์ ๋ฌด๊ฒ๋ณด๋ค ์์ ๊ฒฝ์ฐ, ans ๊ฐฑ์ , ๋จ์ ๋ฌด๊ฒ ๊ฐฑ์
3. ์ฝ๋
import java.util.*;
import java.io.*;
public class Main
{
static PriorityQueue<Node> pq = new PriorityQueue<> ((o1,o2)-> (o2.price-o1.price));
static int W, turn, ans;
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
W = Integer.parseInt(st.nextToken());
turn = Integer.parseInt(st.nextToken());
for (int i=0; i<turn; i++) {
st = new StringTokenizer(br.readLine());
pq.offer(new Node(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())));
}
//์
๋ ฅ ๋
solution();
System.out.println(ans);
}
static void solution() {
while (!pq.isEmpty()) {
Node n = pq.poll();
if (n.weight >= W) {
ans += W * n.price;
break;
}
else {
ans += n.weight * n.price;
W -= n.weight;
}
}
}
static class Node {
int weight, price;
Node(int weight, int price) {
this.weight = weight;
this.price = price;
}
}
}
4. ์ฌ๋ด
๊ฐ ๋๊น์ง ํ์ ๋๊ฐ์ด๊ธฐ๋ ํด๋ณด์
'Algorithm > Softeer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Softeer] ์ง๊ฒ๋ค๋ฆฌ - Java (0) | 2023.05.12 |
---|---|
[Softeer] ์ ๊ดํ - Java (0) | 2023.05.11 |
[Softeer] ๋น๋ฐ ๋ฉ๋ด - Java (0) | 2023.05.10 |
[Softeer] ๋๊ณ ํ ์คํธ ์์ ์์ธก - Java (0) | 2023.05.07 |
[Softeer] ์ฑ์ ํ๊ท - Java (0) | 2023.05.06 |