관리 메뉴

fatalite

C++ 프로세스 [고득점 Kit 스택 / 큐] 본문

코딩 인터뷰/프로그래머스

C++ 프로세스 [고득점 Kit 스택 / 큐]

fataliteforu 2023. 5. 13. 10:28

Problem

난이도: 프로그래머스 2단계

분류: Queue, STL Deque

 

Solution

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
#include <deque>
#include <queue>
#include <utility>
using namespace std;

int solution(vector<int> priorities, int location) {
    int answer = 0;
    deque<pair<int,int>> q;
    for(int i =0; i< priorities.size(); i++){
        q.push_back({priorities[i],i});
    }
    
    int cnt = 0;
    while(!q.empty()){
        pair<int,int> p = q.front();
        q.pop_front();
        cnt++;
        for(int i = 0; i < q.size(); i++){
            if(q[i].first > p.first){
                q.push_back(p);
                p = { -1,-1};
                cnt--;
                break;
            }
        }
        if(p.second == location) return cnt;
    }
}