728x90
https://www.acmicpc.net/problem/1715
메모리: 24,704 KB , 시간: 316 ms
사용 알고리즘: 자료 구조, 그리디 알고리즘, 우선순위 큐
728x90
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
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 A, B;
while(pq.size() > 1) {
A = pq.poll();
B = pq.poll();
answer += A + B;
pq.add(A + B);
}
System.out.println(answer);
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 181860] 빈 배열에 추가, 삭제하기 (java) (0) | 2025.03.12 |
---|---|
[프로그래머스, 181862] 세 개의 구분자 (java) (0) | 2025.03.12 |
[프로그래머스, 120860] 직사각형 넓이 구하기 (java) (0) | 2025.03.11 |
[프로그래머스, 12917] 문자열 내림차순으로 배치하기 (java) (0) | 2025.03.06 |
[프로그래머스, 181864] 문자열 바꿔서 찾기 (java) (0) | 2025.03.06 |