๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/13975)
< ํ์ผ ํฉ์น๊ธฐ 3 >
๋ฌธ์ ํ์ด
์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํด์ ์์ ๊ฐ๋ผ๋ฆฌ ๋ํด์ ์ต์ ๋น์ฉ์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _13975_ { // ํ์ผ ํฉ์น๊ธฐ 3
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
PriorityQueue<Long> queue = new PriorityQueue<>();
long result = 0;
int t = Integer.parseInt(bf.readLine());
for (int i = 0; i < t; i++) {
int k = Integer.parseInt(bf.readLine());
st = new StringTokenizer(bf.readLine());
for (int j = 0; j < k; j++) {
queue.add(Long.parseLong(st.nextToken()));
}
while (!queue.isEmpty()) {
long a = queue.poll();
long b = queue.poll();
result += (a + b);
if (queue.size() == 0)
break;
queue.add(a + b);
}
bw.write(result + "\n");
result = 0;
}
bw.flush();
}
}
Main
๋ณ์)
queue : ์ฐ์ ์์ ํ (์ค๋ฆ์ฐจ์)
result : ์ต์ ๋น์ฉ
t : ํ ์คํธ ๋ฐ์ดํฐ ๊ฐ์
k : ์์ค์ ๊ตฌ์ฑํ๋ ์ฅ์ ์
- ํ ์คํธ ๋ฐ์ดํฐ ๊ฐ์(t) ์ ๋ ฅ๋ฐ์ ์๋งํผ ๋ฐ๋ณตํ์ฌ ๊ฐ ์ต์ ๋น์ฉ ๊ตฌํ๊ธฐ
- ์์ค์ ๊ตฌ์ฑํ๋ ์ฅ์ ์(k) ์ ๋ ฅ๋ฐ์ ํ ์๋งํผ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅ๋ฐ์ queue์ ์ ์ฅ
queue๊ฐ ๋น ๋๊น์ง queue์์ ๊ฐ 2๊ฐ๋ฅผ ๋ฝ์ ๋ํ ๊ฐ์ ์ต์ ๋น์ฉ์ ๋ํ๊ณ queue์๋ ์ ์ฅ
- result ์ถ๋ ฅ ๋ฐ ์ด๊ธฐํ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 23757_์์ด๋ค๊ณผ ์ ๋ฌผ ์์ (0) | 2023.07.18 |
---|---|
[Baekjoon] 19638_์ผํฐ์ ๋ง๋ฒ์ ๋ฟ ๋ง์น (0) | 2023.07.17 |
[Baekjoon] 2075_N๋ฒ์งธ ํฐ ์ (0) | 2023.07.13 |
[Baekjoon] 5525_IOIOI (0) | 2023.07.11 |
[Baekjoon] 15900_๋๋ฌด ํ์ถ (0) | 2023.07.07 |