-

1966 프린터 큐 본문

Algorithm/Baekjoon

1966 프린터 큐

Boogallee 2018. 1. 16. 14:29


제출한 코드가 맞긴 하지만 뭔가 찝찝하다.


무분별하게 STL을 가져다 쓴 듯하다.



코드:

#include <iostream>

#include <queue>

#include <algorithm>

#include <vector>

#include <utility>




using namespace std;


int main()

{


//pair<int, int> p1;

//p1 = make_pair(10, 20);

int T = 0;

cin >> T;

while (T--)

{

int N, M,cnt=1;

cin >> N >> M;

queue<pair<int,int>> Q;

vector<int> V(N);

for (int i = 0; i < N; i++)

{

int get;

cin >> get;

V[i] = get;

pair<int, int> p;

p = make_pair(i, get);

Q.push(p);

}

sort(V.begin(), V.end());

int index = N-1;

while (true)

{

if ((Q.front()).second < V[index])

{

pair<int, int> p = Q.front();

Q.pop();

Q.push(p);

}

else

{

if ((Q.front()).first == M) break;

else{

cnt++;

Q.pop();

index--;

}

}


}

cout << cnt<<endl;

}

//system("pause");


return 0;

}


큐만 가지고 특정 로직으로 할 수 있을 법도 한데, 하드코딩 하기에는 너무 코드가 더러워졌다.


순서 배열하나 선언해서 어째어째하면 뭐 굳이 pair를 안사용 해도 될 것 같다.

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

1932 숫자삼각형  (0) 2018.01.30
1021 회전하는 큐[덱]  (0) 2018.01.17
1260 - DFS와 BFS  (0) 2018.01.16
10845  (0) 2018.01.16
9012 괄호  (0) 2018.01.11
Comments