Programers : 프린터 ( max_element(pair<int, int>) )

김정욱·2021년 1월 26일
0

Algorithm - 문제

목록 보기
66/249

프린터

코드

#include <string>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
/* pair<int,int>에서 max값 빼는 방법! */
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();
        /* max_element에서 pair<int,int>를 사용하는 방법! */
        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처럼 쓰는게 더 좋음
profile
Developer & PhotoGrapher

0개의 댓글