반응형
-문제
-코드
#include<stdio.h>
#include<queue>
using namespace std;
int main() {
int n, sum =0,k, tmp1, tmp2, tmp;
scanf("%d", &n);
priority_queue<int, vector<int>, greater<int> > pq; //오름차순
for (int i = 0; i < n; i++)
{
scanf("%d", &k);
pq.push(k);
}
while (!pq.empty() && n > 1)
{
tmp1 = pq.top();
pq.pop();
tmp2 = pq.top();
pq.pop();
tmp = tmp1 + tmp2;
sum += tmp;
if(!pq.empty()) pq.push(tmp);
}
printf("%d", sum);
return 0;
}
반응형
'이론 > 코딩테스트' 카테고리의 다른 글
[백준] 1744번 수 묶기 [그리디 알고리즘] (0) | 2022.08.18 |
---|---|
[백준] 1049번 기타줄 (그리디 알고리즘) (0) | 2022.08.15 |
[백준] 1520번 내리막 길 (DFS + DP) (0) | 2022.08.08 |
[백준] 1987번 알파벳 (DFS) (0) | 2022.08.08 |
[백준] 2583번 영역 구하기 (BFS) (0) | 2022.08.08 |