[프로그래머스] [C++] 프린터 (queue)
2021. 4. 1. 17:54ㆍ알고리즘/프로그래머스
1. 문제
코딩테스트 연습 - 프린터 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 프린터
일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린
programmers.co.kr
2. priority queue
우선순위 큐를 만들고
대기목록의 인덱스를 증가시키면서
우선순위 큐랑 비교하며
top이랑 같지 않으면 대기 목록의 제일 뒤로 보낸다.
같으면 우선순위 큐를 pop한다.
그리고 만약 location == idx 일 경우 location을 새위치로 업데이트 시켜준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(vector<int> priorities, int location) {
priority_queue<int> pq(priorities.begin(), priorities.end());
int idx = 0, count = 0;
while(true) {
if(idx == location && pq.top() == priorities[location])
break;
if(idx == location) {
location = priorities.size();
}
if(pq.top() == priorities[idx]) {
pq.pop();
count++;
}
else
priorities.push_back(priorities[idx]);
idx++;
}
return count+1;
}
|
cs |
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [C++] 섬 연결하기 (prim) (0) | 2021.04.04 |
---|---|
[프로그래머스] [C++] 여행경로 (dfs) (0) | 2021.04.03 |
[프로그래머스] [C++] 베스트앨범 (map) (0) | 2021.03.31 |
[프로그래머스] [C++]징검다리 (binary-search) (0) | 2021.03.29 |
[프로그래머스] [C++] 단어 변환 (bfs) (0) | 2021.03.28 |