ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [BOJ] 1966 : 프린터 큐
    STUDYING/Algorithm 2018. 10. 11. 18:36
    728x90

    문제


    1966 : 프린터 큐


    풀이


    queue pair 사용법을 몰라서

    다른 분 코드를 대부분 참고했다



    코드


    #include <stdio.h>

    #include <queue>

    using namespace std;


    int main() {

        int n, m, t;

        int cnt = 0 ;

        

        queue<pair<int, int>> q;

        priority_queue<int> pq;

        

        scanf("%d", &t);

        

        for(int testcase = 0; testcase<t; testcase++){

            scanf("%d %d",&n,&m);

            

            for (int i = 0; i < n; i++){

                int a;

                scanf("%d", &a);

                q.push({i,a});

                pq.push(a);

            }

            

            while (!q.empty()) {

                int nowIdx = q.front().first;

                int nowVal = q.front().second;

                

                q.pop();

                

                if (pq.top() == nowVal) {

                    pq.pop();

                    cnt++;

                    

                    if(nowIdx == m){

                        printf("%d\n", cnt);

                        break;

                    }

                } else {

                    q.push({nowIdx, nowVal});

                }

                

                

            }

        }

        return 0;

    }


    'STUDYING > Algorithm' 카테고리의 다른 글

    [BOJ] 1874 : 스택 수열  (0) 2018.10.18
    백준 문제  (0) 2018.10.15
    [BOJ] 11866 1158 : 조세퍼스 문제  (0) 2018.10.10
    [BOJ] 10845 : 큐  (0) 2018.10.04
    [BOJ] 10828 : 스택  (0) 2018.10.04
Designed by Tistory.