๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/15903)
< ์นด๋ ํฉ์ฒด ๋์ด >
๋ฌธ์ ํ์ด
๊ฐ์ฅ ์์ ์ ์๋ฅผ ์ป๊ธฐ ์ํด ์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํด์ ์์ ์๋ฅผ ๋ฝ์ ๋ํ๋ค.
๋ํ ๋ int ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ ์์ผ๋ฏ๋ก long์ผ๋ก ์ ์ธํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _15903_ { // ์นด๋ ํฉ์ฒด ๋์ด
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<Long> queue = new PriorityQueue<>();
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
queue.add(Long.parseLong(st.nextToken()));
}
for (int i = 0; i < m; i++) {
long x = queue.poll();
long y = queue.poll();
queue.add(x + y);
queue.add(x + y);
}
long result = 0;
while (!queue.isEmpty()) {
result += queue.poll();
}
System.out.println(result);
}
}
Main
๋ณ์)
n : ์นด๋์ ๊ฐ์
m : ์นด๋ ํฉ์ฒด๋ฅผ ๋ช ๋ฒ ํ๋์ง ๋ํ๋ด๋ ์
queue : ์นด๋์ ์ํ๋ฅผ ์ ์ฅ
result : ๊ฐ์ฅ ์์ ์ ์
- ์นด๋์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ (n)๊ณผ ์นด๋ ํฉ์ฒด๋ฅผ ๋ช ๋ฒ ํ๋์ง๋ฅผ ๋ํ๋ด๋ ์ (m) ์ ๋ ฅ
- ์ฐ์ ์์ ํ์ ์นด๋์ ์ํ๋ฅผ ์ ์ฅ
- ์ฐ์ ์์ ํ ์ด๋ฏ๋ก ๋ฝ์๋ด๋ฉด ๊ฐ์ฅ ์์ ์์ด๋ค. ๊ฐ์ฅ ์์ ์ ๋ ๊ฐ๋ฅผ ๋ํด์ queue์ ๋ ๋ฒ ์ ์ฅ
- ์ฐ์ ์์ ํ์ ์๋ ๊ฐ์ ๋ค ๋ฝ์๋ด์ ๋ํ ๊ฐ(result)์ ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 5525_IOIOI (0) | 2023.07.11 |
---|---|
[Baekjoon] 15900_๋๋ฌด ํ์ถ (0) | 2023.07.07 |
[Baekjoon] 16918_๋ด๋ฒ๋งจ (0) | 2023.06.30 |
[Baekjoon] 3584_๊ฐ์ฅ ๊ฐ๊น์ด ๊ณตํต ์กฐ์ (0) | 2023.06.29 |
[Baekjoon] 2036_์์ด์ ์ ์ (0) | 2023.06.29 |