https://programmers.co.kr/learn/courses/30/lessons/42628
특이사항 딱히 없는 문제.(패스 해도됨)
#include <string>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
//1.스트링 문자열과 숫자 분리
//2.string D 1과 D-1을 기준으로 일치하면 D1:: 첫번째꺼 삭제 D-1 : 마지막ㅈ\째꺼 사제
vector<int> solution(vector<string> operations) {
vector<int> answer;
deque<int> dTemp;
string sfirst = "D 1";//첫번째꺼 삭제(제일 큰거 삭제)
string slast = "D -1";//마지막꺼 삭제(제일 작은거 삭제)
for (int i = 0; i < operations.size(); i++)
{
if (operations[i][0] == 'I')
{
string sTemp = operations[i].substr(2, operations[i].size()-2);
dTemp.emplace_back(stoi(sTemp));
}
else if (operations[i] == sfirst)
{
if (dTemp.size() <= 0) continue;
else
{
sort(dTemp.begin(), dTemp.end(), [](int a, int b) {
return a > b;
});//내림차순 정렬합니다
dTemp.pop_front();
}
}
else if (operations[i] == slast)
{
if (dTemp.size() <= 0) continue;
else
{
sort(dTemp.begin(), dTemp.end(), [](int a, int b) {
return a > b;
});//내림차순 정렬합니다
dTemp.pop_back();
}
}
}
if (dTemp.size() <= 0)
{
for (int i = 0; i < 2; i++)
{
answer.emplace_back(0);
}
}
else
{
sort(dTemp.begin(), dTemp.end(), [](int a, int b) {
return a > b;
});//내림차순 정렬합니다
answer.emplace_back(dTemp[0]);
answer.emplace_back(dTemp[dTemp.size() - 1]);
}
return answer;
}