-
[BOJ] 1966 프린터 큐 / C++공부/PS (백준) 2022. 5. 18. 02:06
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
#include <stdio.h> #include <queue> using namespace std; int T, N, M; queue <pair<int, int> > q; priority_queue <int> pq; int sequence[110]; int cnt, answer; void init() { for (int i = 0; i <= 100; i++) { sequence[i] = 0; } q = queue<pair<int, int> >(); // queue 초기화 pq = priority_queue<int>(); // queue 초기화 cnt = 1; answer = 0; } int main(void) { scanf("%d", &T); while (T--) { init(); scanf("%d %d", &N, &M); for (int i = 0; i < N; i++) { int x; scanf("%d", &x); q.push({ i,x }); pq.push(x); } while (!q.empty()) { int cur_index = q.front().first; int cur_priority = q.front().second; int top_priority = pq.top(); q.pop(); if (cur_priority >= top_priority) { // 현재 문서가 나머지 문서들보다 우선순위가 높음 pq.pop(); sequence[cur_index] = cnt++; } else { q.push({ cur_index, cur_priority }); } } printf("%d\n", sequence[M]); } return 0; }
배운 것
- C++ STL 우선순위 큐 사용
- queue 컨테이너 초기화
#include <queue> queue <int> q; // queue 선언 q = queue <int>(); // queue 초기화
'공부 > PS (백준)' 카테고리의 다른 글
[BOJ] 10866 덱 / C++ (1) 2023.01.14 [BOJ] 10845 큐 / C++ (0) 2023.01.03 [BOJ] 19238 스타트 택시 / C++ (0) 2022.04.28 [BOJ] 23288 주사위 굴리기 2 (0) 2022.04.24 [BOJ] 16235 나무 재테크 (0) 2022.04.19 - C++ STL 우선순위 큐 사용