[프로그래머스] [C++] 프린터 (queue)
2021. 4. 1. 17:54ㆍ알고리즘/프로그래머스
1. 문제
코딩테스트 연습 - 프린터 | 프로그래머스 (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 |