자라는 개발자/문제풀이

백준 c++ 1966 프린터 큐

자란다 2022. 2. 6. 20:04
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