반응형
- 알고리즘 분류 : 그리디, 우선순위 큐
- 사용 언어 : JAVA
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
// 우선순위 큐 사용
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(int i=0; i<N; i++) {
pq.offer(Integer.parseInt(br.readLine()));
}
if(N == 1) {
System.out.println(arr[0]);
return;
}
int sum = 0;
while(!pq.isEmpty()) {
int num1 = pq.poll();
if(pq.isEmpty()) {
break;
}
int num2 = pq.poll();
int temp = num1 + num2;
pq.offer(temp);
sum += temp;
}
System.out.println(sum);
}
}
반응형
'Algorithm' 카테고리의 다른 글
[Programmers] 개인정보 수집 유효기간 (Java) (0) | 2023.02.05 |
---|---|
[BAEKJOON] 11000번 : 강의실 배정 (JAVA) (0) | 2023.01.29 |
[BAEKJOON] 11779번 : 최소비용 구하기2 (JAVA) (0) | 2023.01.24 |
[BAEKJOON] 17396번 : 백도어 (JAVA) (0) | 2023.01.23 |
[BAEKJOON] 17298번 : 오큰수 (JAVA) (0) | 2023.01.15 |