deque에 넣어주고 조건대로 동작하게끔 하였다. 크게 어렵지 않은 문제이다.
#include <string>
#include <vector>
#include <deque>
using namespace std;
int solution(vector<int> priorities, int location)
{
int answer = 1;
deque<pair<int,int>> dq;
for(int i=0;i<priorities.size();i++) dq.push_back({priorities[i], i});//deque에 그대로 넣어준다.
while (!dq.empty())
{
bool print = true;
pair<int,int> cur = dq.front();
dq.pop_front();
for(auto c : dq)
{
if (cur.first < c.first)//우선순위가 높은게 있다면
{
dq.push_back(cur);// 뒤에 넣어주고
print = false;// 출력하지않았음
break;
}
}
if(print && cur.second == location) break;// 원하는 인쇄물을 출력하면
if(print) answer++;//우선순위대로 프린트하면
}
return answer;
}