CodingTest/Java
BOJ_1715 : ์นด๋ ์ ๋ ฌํ๊ธฐ
Soom_1n
2024. 2. 11. 20:41
1715๋ฒ: ์นด๋ ์ ๋ ฌํ๊ธฐ
์ ๋ ฌ๋ ๋ ๋ฌถ์์ ์ซ์ ์นด๋๊ฐ ์๋ค๊ณ ํ์. ๊ฐ ๋ฌถ์์ ์นด๋์ ์๋ฅผ A, B๋ผ ํ๋ฉด ๋ณดํต ๋ ๋ฌถ์์ ํฉ์ณ์ ํ๋๋ก ๋ง๋๋ ๋ฐ์๋ A+B ๋ฒ์ ๋น๊ต๋ฅผ ํด์ผ ํ๋ค. ์ด๋ฅผํ ๋ฉด, 20์ฅ์ ์ซ์ ์นด๋ ๋ฌถ์๊ณผ 30์ฅ
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์นด๋ ๋ฌถ์๋ค์ ํฉ์น ๋ ์ต์ ๋น๊ต ํ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์์ ๋ฌถ์๋ถํฐ ํฉ์ณ์ผ ์ต์๊ฐ์ด ๋์ค๋๊ฑธ ๋ฌธ์ ์์ ํ์ธํ ์ ์์ผ๋ฏ๋ก,
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ๊ทผํด ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํ์ฌ ํ์ดํ๋ค. - ๋ ์ต์๊ฐ ์์๋ฅผ ๋ฝ์ ๊ทธ ํฉ์ ์ ๋ต์ ๋์ ํ๊ณ , ๋ค์ ๊ทธ ํฉ์ ์ฐ์ ์์ ํ์ ๋ฃ๋๋ค.
- ์ฐ์ ์์ ํ์ ์์๊ฐ 1๊ฐ๊ฐ ๋จ์ ๋ ๊น์ง ๋ฐ๋ณตํ๋ค.
- ํฉ์ผ๋ก ๋ง๋ค์ด์ง ์ ๋ฌถ์์ด ๊ธฐ์กด ๋ฌถ์๋ณด๋ค ํด ์ ์์์ ์ ์ํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
pq.add(Integer.parseInt(br.readLine()));
}
int answer = 0;
int n1, n2;
while (pq.size() > 1) {
n1 = pq.poll();
n2 = pq.poll();
answer += n1 + n2;
pq.add(n1 + n2);
}
bw.write(Integer.toString(answer));
bw.flush();
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- N๊ฐ์ ๋ฌถ์์ ์ฐ์ ์์ ํ pq์ ์ ์ฅํ๋ค.
- pq์ ํฌ๊ธฐ๊ฐ 1์ด ๋ ๋๊น์ง, ์์๋ฅผ 2๊ฐ์ฉ ๊บผ๋ด ๊ทธ ํฉ์ ๋์ ํ๊ณ , ๋ค์ pq์ ๋ฃ๋ ๊ฒ์ ๋ฐ๋ณตํ๋ค.
- ์ต์ข ์ผ๋ก ๋์ ๋ answer์ ๊ฐ์ด ์ ๋ต์ด๋ค.
๐ธ end ๐ธ
- ๊ทธ๋ฆฌ๋์ ์ผ๋ก ์ ๊ทผํด์ ๋จ์ํ ์ต์๊ฐ๋ง ๋์ ํ๋ฉด ๋๋ ์ค ์์๋๋ฐ, ์๋ก ๋ง๋ค์ด์ง ๋ฌถ์์ ํฌ๊ธฐ๊ฐ ๊ธฐ์กด ๊ฐ๋ณด๋ค ๋ ํด ์ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ์ฐ์ ์์ ํ์ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
- ์ด ๋ถ๋ถ์ ๊ตฌํํ์ง ์์์ 1ํ ํ๋ ธ๋ค.
728x90