반응형
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 |