*프린터(스택/큐) 중요도 대기목록, location 위치의 문서가 몇번째로 인쇄되는지. 인쇄 대기목록의 젤 처음을 꺼냄. 대기목록에서 중요도가 가장 높으면 인쇄. 아니면 젤뒤로 넣음. #include <iostream> #include <deque> #include <pair> using namespace std; int solution(vector priorities, int location) { int answer = 0; deque<pair<int, bool>> que; for(int i = 0; i < priorities.size(); i++) { bool b = false; if(i == location) b = true; que.push_back(make_pair(priorities[i], b)); } int count = 0; while (!que.empty()) { int pivot = que[0].first; bool b = que[0].second; int i; for (i = 0; i < que.size(); i++) { if (que[i].first > pivot) { que.push_back(que[0]); que.pop_front(); break; } } if (i == que.size()) // 중요도 높은게 없다. { count++; que.pop_front(); if (b) return count; } } } | cs |
::public/코딩테스트 풀이