📍 문제 설명
💡 접근
제일 작은 카드 묶음 끼리 묶어나가면서 합을 누적해나가는 문제
👩💻 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
PriorityQueue<Integer> pq = new PriorityQueue<>();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
pq.offer(kb.nextInt());
}
int result = 0;
//제일 작은 수들끼리 합쳐나가야 비교 횟수가 최소가 된다.
while(pq.size() != 1) {
int a = pq.poll();
int b = pq.poll();
int sum = a+b;
//해당 합친값을 따로 기록해놓고 우선순위 큐에 넣기
result += sum;
pq.offer(sum);
}
System.out.println(result);
}
}