본문 바로가기
[프로그래머스]

프로그래머스 프로세스 C++

by Hevton 2023. 8. 17.
반응형

집중력을 되찾고 나선 금방 풀었다.

#include <string>
#include <vector>
#include <queue>

using namespace std;

int solution(vector<int> priorities, int location) {
    int answer = 0;
    queue<pair<int, int>> que;
    
    priority_queue<pair<int, int>, vector<pair<int, int>>, less<pair<int, int>>> pq;
    
    int len = priorities.size();
    for(int i = 0; i < len; i++) {
        que.push({priorities[i], i});
        pq.push({priorities[i], i});
    }

    while(!pq.empty()) {
        
        pair<int, int> max = pq.top();
        pair<int, int> top = que.front();
        
        que.pop();
        
        if(max.first == top.first) {
            pq.pop();
            answer++;
            
            if(top.second == location)
                break;
            
        } else
            que.push(top);  
    }
    return answer;
}

 

max_element에 대해서 새로 알아보자. 최댓값을 찾는데 유용하다.

 

max_element(vector.begin(), vector.end()) -> iterator 반환

*max_element(vector.begin(), vector.end()) -> value 반환

 

min_element도 있다.

반응형