๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/7774)
< ์ฝ์ผํธ >
๋ฌธ์ ํ์ด
์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์ผํธ๊ฐ ๋ง์ ์์ผ๋ก ๊ฝ๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _7774_ { // ์ฝ์ผํธ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
PriorityQueue<Integer> a = new PriorityQueue<>(Collections.reverseOrder());
PriorityQueue<Integer> b = new PriorityQueue<>(Collections.reverseOrder());
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
a.add(Integer.parseInt(st.nextToken()));
}
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < m; i++) {
b.add(Integer.parseInt(st.nextToken()));
}
int result = 0;
while (!a.isEmpty() && !b.isEmpty()) {
if (a.size() < n) {
result -= 1;
}
int temp = a.poll();
while (temp-- > 0 && !b.isEmpty()) {
result += b.poll();
}
}
System.out.println(result);
}
}
๋ณ์)
n, m : ์ฒซ ๋ฒ์งธ, ๋ ๋ฒ์งธ ๋ฉํฐํญ์ ๊ฐ์
a, b : ๋ฉํฐํญ์ ์๋ ์ฝ์ผํธ ๊ฐ์
result : ์ฌ์ฉํ ์ ์๋ ์ปดํจํฐ ๊ฐ์
์ฒซ ๋ฒ์งธ, ๋ ๋ฒ์งธ ๋ฉํฐํญ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ฉํฐํญ์ ๊ฐ์๋งํผ ์ฝ์ผํธ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฐ ์ฐ์ ์์ ํ์ ์ ์ฅํ์ฌ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. a์ b์ ์ฐ์ ์์ ํ๊ฐ ๋น์ด์์ง ์์ ๋ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) a ์ฐ์ ์์ ํ๊ฐ n๊ฐ๋ณด๋ค ์๋ค๋ฉด ํ์ค A ์ฝ์ผํธ๋ฅผ ํ๋ ์ฌ์ฉํ ๊ฒ์ด๋ฏ๋ก result-1
2) a ์ฐ์ ์์ ํ poll
3) ์์์ poll ํ ๊ฐ์๋งํผ b ์ฐ์ ์์ ํ์์ poll ํ์ฌ result์ ๊ฐ ์ถ๊ฐ
์ต์ข result๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 7587_Anagrams (0) | 2024.11.07 |
---|---|
[Baekjoon] 11785_Programming Contest Strategy (0) | 2024.11.06 |
[Baekjoon] 11235_Polling (0) | 2024.11.04 |
[Baekjoon] 11609_Class Time (0) | 2024.11.01 |
[Baekjoon] 6177_Statistics (0) | 2024.10.30 |