#include <string>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
bool compare(pair<int,int> a, pair<int,int> b){
return a.second < b.second;
}
int solution(vector<int> priorities, int location) {
int answer = 0, num;
deque<pair<int,int>> q;
for(int i=0;i<priorities.size();i++) q.push_back({i,priorities[i]});
while(true)
{
auto cur = q.front();
auto MAX = max_element(q.begin(), q.end(), compare);
if((*MAX).second == cur.second){
q.pop_front();
answer++;
if(cur.first == location) break;
}else{
q.push_back(cur);
q.pop_front();
}
}
return answer;
}
- 깨달음
1) pair<int, int>
자료형을 가진 container에서도 max_element
를 사용할 수 있다
2) queue는 순회도 안될 뿐더러, iterator 자체가 없다!!!
--> 필요하다면 deque를 queue처럼 쓰는게 더 좋음