2023. 11. 27. 15:40 자기개발/코딩테스트
C++ (코딩테스트) - 컵라면(백준) 우선순위 큐 사용
문제
https://www.acmicpc.net/problem/1781
1781번: 컵라면
상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라
www.acmicpc.net
내가 푼 코드
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
bool mysort(const pair<int, int>& a,
const pair<int, int>& b)
{
if(a.first == b.first)
return (a.second > b.second);
else
return (a.first < b.first);
}
int main() {
int N, S, E;
cin >> N;
vector<pair<int, long long int>> v(N);
priority_queue<long long int, vector<long long int>, greater<long long int>> con;
for (int i = 0; i < N; i++)
{
cin >> S >> E;
v[i] = make_pair(S, E);
}
sort(v.begin(), v.end(), mysort);
int num = 0;
for (int i = 0; i < N; i++)
{
if (v[i].first > num)
{
num = v[i].first;
}
else
{
continue;
}
for (int j = i; j < i + num; j++)
{
if(j == N)
break;
if (num == v[j].first)
{
int con_size = con.size();
if (con_size < num)
{
con.emplace(v[j].second);
}
else
{
if (con.top() < v[j].second)
{
con.pop();
con.emplace(v[j].second);
}
else
{
i = j;
break;
}
}
}
else
{
i = j - 1;
break;
}
}
}
int sum = 0;
while (!con.empty())
{
sum += con.top();
con.pop();
}
cout << sum << endl;
return 0;
}
'자기개발 > 코딩테스트' 카테고리의 다른 글
C++ (코딩테스트) - Yonsei TOTO(백준) 우선순위 큐 사용 (0) | 2023.11.28 |
---|---|
C++ (코딩테스트) - 국영수(백준) : 정렬 (1) | 2023.11.01 |
C++ (코딩테스트) - 넷이 놀기(백준) (0) | 2023.09.22 |
C++ (코딩테스트) - 코코넛 그 두 번째 이야기(백준) (0) | 2023.09.22 |
C++ (코딩테스트) - 스텍(백준) (0) | 2023.09.20 |