728x90
반응형
1966 프린터 큐
문제풀이
#include <iostream>
#include <queue>
using namespace std;
void fast_io(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main(void)
{
fast_io();
int t;
cin >> t;
while (t--)
{
int n, m;
int cnt = 0;
queue<pair<int, int>> q;
priority_queue<int> p;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
int tmp;
cin >> tmp;
q.push({i, tmp});
p.push(tmp);
}
while (!q.empty())
{
int idx = q.front().first;
int val = q.front().second;
q.pop();
if (p.top() == val)
{
p.pop();
cnt++;
if (idx == m)
{
cout << cnt << "\n";
break;
}
}
else
q.push({idx, val});
}
}
}
우선순위 큐를 활용해서 큐와 비교한뒤 맞으면 cnt 그리고 그게 m과 일치 한다면 cnt 를 출력했다.
728x90
반응형
'자라는 개발자 > 문제풀이' 카테고리의 다른 글
백준 c++ 15832 Aku Negaraku (0) | 2022.02.09 |
---|---|
백준 c++ 14783 Eenie Meenie Miney Moe (0) | 2022.02.08 |
백준 c++ 1417 국회의원 선거 (0) | 2022.02.04 |
백준 c++ 4158 CD (0) | 2022.02.03 |
백준 c++ 15815 천재 수학자 성필 (0) | 2022.02.01 |