문제 링크: 코딩테스트 연습 > 스택/큐 > 프린터
문제 이해
알고리즘 구현
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> priorities, int location) {
int n = priorities.size();
vector<int> printQueue;
int i = 0;
while (printQueue.size() != n) {
int maxPriority = -1, maxPriorityIdx = 0;
int turn = n;
while (turn--) {
i = i % n;
if (priorities[i] > maxPriority) {
maxPriority = priorities[i];
maxPriorityIdx = i;
}
++i;
}
if (location == maxPriorityIdx)
return (printQueue.size() + 1);
printQueue.push_back(maxPriorityIdx);
priorities[maxPriorityIdx] = -1;
i = maxPriorityIdx;
}
return (-1);
}