https://www.acmicpc.net/problem/1715
숫자가 작은 카드부터 더하는게 최적이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> q = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
q.offer(Integer.parseInt(br.readLine()));
}
int ans = 0;
while (q.size() > 1) {
int n = q.poll() + q.poll();
ans += n;
q.offer(n);
}
System.out.println(ans);
}
}
'[백준] PS > Java' 카테고리의 다른 글
[백준 2011] 암호코드 - JAVA (0) | 2025.05.11 |
---|---|
[백준 1594] 전화번호 만들기 - JAVA (0) | 2025.05.10 |
[백준 2064] IP 주소 - JAVA (0) | 2025.05.09 |
[백준 1332] 풀자 - JAVA (0) | 2025.05.09 |
[백준 1327] 소트 게임 - JAVA (0) | 2025.05.06 |