# 문제

# 입력 및 출력

# 풀이
우선순위 큐 하나와 그냥 큐 하나를 선언해서 풀었음
우선순위 큐를 사용해선 중요도가 가장 높은 인쇄물을 찾고
그냥 큐를 사용해서 현재 인쇄 대기중인 대기열을 확인하도록 했음
#include <iostream>
#include <queue>
using namespace std;
int main() {
int T, N, lo, num;
cin >> T;
while (T--) {
priority_queue<int, vector<int>> f;
queue<pair<int, int>> q;
int cnt = 1;
cin >> N >> lo;
for (int i = 0; i < N; i++) {
cin >> num;
f.push(num);
q.push(make_pair(i, num));
}
while (1) {
if (f.top() == q.front().second) { // 가장 높은 우선순위를 가진 문서가 출력할 순서가 됨
if (q.front().first == lo) break; // 원하는 문서가 출력할 순서가 되면 종료
q.pop();
f.pop();
cnt++;
}
else { // 가장 높은 우선순위를 큐의 가장 앞에 두기 위해 push, pop 반복
q.push(q.front());
q.pop();
}
}
cout << cnt << "\n";
}
}

'Algorithm > 📖Baekjoon' 카테고리의 다른 글
| #1543 문서 검색 (0) | 2022.06.30 |
|---|---|
| #2193 이친수 (0) | 2022.06.29 |
| #11052 카드 구매하기 (0) | 2022.06.26 |
| #11403 경로 찾기 (0) | 2022.06.25 |
| #1004 어린 왕자 (0) | 2022.06.24 |
댓글