#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
int n, m, k;
vector<int> result;
cin >> n;
for (int i = 0; i < n; i++)
{
queue<pair<int, int>> nums; //중요도, 번호 저장
priority_queue<int> pq; //중요도 큰순으로 저장
cin >> m >> k;
result.push_back(0);
for (int j = 0; j < m; j++)
{
int temp;
cin >> temp;
nums.push({ temp, j });
pq.push(temp);
}
while (1)
{
int prior = nums.front().first; //중요도
int index = nums.front().second; //번호
nums.pop();
if (prior == pq.top()) { //현재 중요도가 중요도의 제일 높은것과 같다면
result[i]++; //몇번째에서 나가는지 count
pq.pop();
if (index == k) { //번호가 받은 번호와 같다면 break
break;
}
}
else
{
nums.push({ prior, index }); //없다면 다시 맨 뒤로 보내기
}
}
}
for (int i = 0; i < n; i++)
cout << result[i] << '\n';
return 0;
}
입력받는것이 뭐가 뭔지 한참을 보다가 풀게되었다.
3 //뽑을 것의 총 개수
1 0 //1. 문서의 수 2. 언제 출력되는 것인지 알고 싶은 번째
5 //우선 순위 값
4 2
1 2 3 4
6 0 //ex)6개의 문서, 0번째
1 1 9 1 1 1 // 우선 순위
'Algorithm > Baekjoon' 카테고리의 다른 글
[C++] 백준 1920 수 찾기 (0) | 2021.02.02 |
---|---|
[C++] 백준 5397 키로거 (0) | 2021.02.02 |
[C++] 백준 1874 스택 수열 (0) | 2021.02.01 |
[C++] 백준 2798 블랙잭 (0) | 2021.02.01 |
[C++] 백준 2920 음계 (0) | 2021.02.01 |