-
1966 프린터 큐 본문
제출한 코드가 맞긴 하지만 뭔가 찝찝하다.
무분별하게 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 |