https://school.programmers.co.kr/learn/courses/30/lessons/42628
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<string> operations)
{
vector<int> answer;
int iMax = 0;
int iMin = 0;
int iMaxIndex = -1;
int iMinIndex = -1;
int iIndexCount = -1;
vector<int> vSave;
for (int i = 0; i < operations.size(); i++)
{
string sTmp = operations[i].substr(0, 1);
int iNum = stoi(operations[i].substr(2));
if (sTmp == "I")
{
vSave.push_back(iNum);
sort(vSave.begin(), vSave.end());
}
else if (sTmp == "D" && vSave.size() != 0)
{
if (iNum == 1)
{
vSave.erase(vSave.begin() + (vSave.size() - 1));
}
else if(iNum == -1)
{
vSave.erase(vSave.begin());
}
}
}
if (vSave.empty())
{
answer.push_back(0);
answer.push_back(0);
}
else
{
answer.push_back(vSave.back());
answer.push_back(vSave.front());
}
return answer;
}
vector를 이용해서 풀었다 sort를 사용하여 front에 최소값 back에 최대값이 들어가게끔 하였다.
set을 사용 하는게 더 좋아보인다.
substr만 쓸수 있다면 쉬운문제.
std::string a = "0123456789abcdefghij";
// count 가 npos 이므로 pos 부터 문자열 끝까지 리턴한다.
std::string sub1 = a.substr(10);
std::cout << sub1 << '\n';
// pos 와 pos + count 모두 문자열 범위 안이므로, 해당하는 부분 문자열을
// 리턴한다.
std::string sub2 = a.substr(5, 3);
std::cout << sub2 << '\n';
(출력)
abcdefghij
567