Notice
Recent Posts
Recent Comments
Link
거의 알고리즘 일기장
프로그래머스lv3 _ 이중우선순위큐 본문
programmers.co.kr/learn/courses/30/lessons/42628
풀이방법
문제는 최대힙으로 풀라고 권장하지만 multiset으로 푸는편이 더 깔끔하고 쉬워서 그렇게 풀었다.
참고로 multiset은 자동 정렬이 된다.
코드
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <iostream>
using namespace std;
vector<int> solution(vector<string> operations) {
vector<int> answer;
multiset<int> container;
for (auto ele : operations)
{
if (ele[0] == 'I')
{
string strNum = ele.substr(2, ele.size() - 2);
int num = stoi(strNum);
container.insert(num);
}
else if(ele[0] == 'D')
{
//비었을경우 무시
if (container.empty())
continue;
if (ele[2] == '1')
container.erase(--end(container));
else
container.erase(begin(container));
}
}
if (container.empty())
answer = { 0, 0 };
else
answer = { *(--end(container)), *begin(container)};
cout << answer[0] << " " << answer[1] << endl;
return answer;
}
멀티셋을 이용하니 간단했다.
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 고득점키트 완전탐색 (0) | 2020.09.06 |
---|---|
프로그래머스 고득점 키트 정렬 (0) | 2020.09.06 |
프로그래머스lv3 _ 디스크 컨트롤러 (0) | 2020.09.04 |
백준 4195번 _ 친구 네트워크 (0) | 2020.06.26 |
백준 13306번 _ 트리 (0) | 2020.06.26 |
Comments