본문 바로가기
이론/코딩테스트

[백준] 1715번 카드 정렬하기 (그리디 알고리즘, 우선순위큐)

by 퇴근후개발 2022. 8. 9.
반응형

-문제

 

-코드

#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;
}
반응형