반응형

Data라는 구조체를 만들고,

 

구조체를 자료형으로 갖는 벡터를 만들어서

 

priority queue를 문제 풀이에 이용했다.

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <math.h>
#include <queue>
using namespace std;
struct Data{
	int money;
	int when;
	Data(int a, int b){
		money=a;
		when=b;
	}
	bool operator<(Data &b){
		return when>b.when;
	}
	
	
};

int main() {
	//freopen("input.txt.txt","rt",stdin);
	int n,i,j,a,b,res=0, maxx=INT_MIN;
	vector<Data> T;
	priority_queue<int> pQ;
	scanf("%d", &n);
	for(i=1; i<=n ;i++){
		scanf("%d %d", &a, &b);
		T.push_back(Data(a,b));
		if(b>maxx) maxx=b;
		
	}
	sort(T.begin(), T.end());
	j=0;
	for(i=maxx; i>=1; i--){
		for(;j<n; j++){
			if(T[j].when<i) break;
			pQ.push(T[j].money);
		}
		if(!pQ.empty()){
			res+=pQ.top();
			pQ.pop();
		}
	}
	printf("%d\n",res);
	
	return 0;	
}
반응형

'Algorithm > etc' 카테고리의 다른 글

DFS , dis-joint set (Union & Find 알고리즘)  (0) 2022.01.18
recursion memoization  (0) 2022.01.18
C++ 구조체 만들기  (0) 2022.01.17
priority_queue : 우선순위 큐 , 최소힙, 최대힙  (0) 2022.01.17
queue 직접구현, BFS  (0) 2022.01.16

+ Recent posts