문제 |
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
코드 |
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) {
int n, m;
cin >> n >> m;
vector<int> v;
queue<pair<int, int>> q;
for (int i = 0; i < n; i++) {
int priority;
cin >> priority;
v.emplace_back(priority);
q.emplace(i, priority);
}
sort(v.begin(), v.end());
int cnt = 0;
while (true) {
if (v.back() == q.front().second) {
cnt++;
if (m == q.front().first) break;
v.pop_back();
}
else
q.emplace(q.front());
q.pop();
}
cout << cnt << '\n';
}
return 0;
}
설명 |
queue에 문서 번호와 중요도를 pair로 저장한다.
vector는 가장 높은 중요도를 구하기 위해 사용했다.
'PS > BOJ' 카테고리의 다른 글
[C++] BOJ (백준) 2108 : 통계학 (0) | 2022.12.24 |
---|---|
[C++] BOJ (백준) 1978 : 소수 찾기 (0) | 2022.12.23 |
[C++] BOJ (백준) 1929 : 소수 구하기 (0) | 2022.09.15 |
[C++] BOJ (백준) 1920 : 수 찾기 (0) | 2022.09.14 |
[C++] BOJ (백준) 1874 : 스택 수열 (0) | 2022.09.14 |