맛있는감귤

BOJ : 1966 프린터 큐 본문

알고리즘/백준 알고리즘

BOJ : 1966 프린터 큐

맛있는감귤 2017. 1. 19. 13:18

문제 : https://www.acmicpc.net/problem/1966

github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1966.cpp

출처

ACM-ICPC Regionals Europe Northwestern European Regional Contest NWERC 2006 F번


입력값이 작아 부르트 포스로 풀 수 있을 것 같지만 디큐를 이용해서 풀어보았다.

#include <iostream>
#include <deque>
using namespace std;
int main(){
    int T;
    cin>>T;
    while(T--){
        deque<pair<int, bool>> dq;
        int N,M,a,ans=0;
        cin>>N>>M;
        for(int i=0;i<N;i++){
            cin>>a;
            i==M ? dq.push_back(make_pair(a,true)) : dq.push_back(make_pair(a,false));
        }
        while(!dq.empty()){
            int f = dq.front().first;
            bool c = dq.front().second;
            bool flag = false;
            dq.pop_front();
            for(int i=0;i<dq.size();i++){
                if(f < dq.at(i).first) {
                    dq.push_back(make_pair(f, c));
                    flag = true;
                    break;
                }
            }
            if(!flag){
                ans++;
                if(c) break;
            }
        }
        cout<<ans<<"\n";
    }
}


'알고리즘 > 백준 알고리즘' 카테고리의 다른 글

BOJ : 2206 벽 부수고 이동하기  (2) 2017.01.19
BOJ : 2178 미로찾기  (0) 2017.01.19
BOJ : 1965 상자넣기  (0) 2017.01.19
BOJ : 1932 숫자삼각형  (0) 2017.01.19
BOJ : 1924 2007년  (0) 2017.01.19