programming language/Structure

[프로그래머스 Level2 스택] 프린터

jellylucy 2021. 7. 28. 13:27

문제

입출력

문제풀이

#include <string>
#include <vector>
#include <queue>
using namespace std;
//큐에 인쇄 대기목록을 모두 넣어주기
int solution(vector<int> priorities, int location) {
    int answer = 0;
//     queue<int> list;
//     for(int i =0;i<priorities.size();i++){
//         list.push(priorities[i]);
//     }
//     while(!list.size()){
//         int out = list.top();
//         list.pop();
//         //판단하기 
//         for(int i =0;i<list.size();i++){
//             if(out < list)
//                 //큐의 원소를 알고 싶은다..
//         }        
        
//     }
    
//         for(int i =0;i<priorities.size();i++){
//             int out = priorities[i];
//             priorities.erase(priorities[i]);
//             for(int j = 0;j<priorities.size();j++)
//                 if(out < priorities[j])
//                     priorities.push_back(out)
//                     break;
        
//         }
    priority_queue <int> pq;
    queue<pair<int,int>>q;
    
    int size = priorities.size();
    for(int i = 0;i<size;i++){
        q.push(make_pair(i,priorities[i]));
        pq.push(priorities[i]);
    }
    
    while(!q.empty()){
        int num = q.front().first;
        int important = q.front().second;
        q.pop();
      //  int count =0;
        if(important == pq.top()){
            pq.pop();
            answer++;
           // count++;
            if(num == location){
                //answer = count;
            break;
            }
        }
        else{
            q.push(make_pair(num, important));
        }
    
    
    }
    
    return answer;
}