열심히 코딩 하숭!
[알고리즘][큐] 1966번 프린터 큐 | baekjoon 문제 풀이 본문
https://www.acmicpc.net/problem/1966
문제
풀이
문제에서 주어진 내용 그대로 따라갔다!
문서가 처음에 몇 번째 위치에 놓였는지와 문서의 중요도 값은 어떻게 되는지를 한번에 파악하기 위해
pair<> 클래스를 사용하여 데이터쌍을 만들어서 풀었다.
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int T, N, M, importance,index;
int arr[100];
cin >> T;
for (int i = 0; i < T; i++) {
queue<pair<int, int>> q;
cin >> N >> M; // M은 0부터 / 주요도는 1 이상부터
for (int j = 0; j < N; j++) {
cin >> importance;
q.push({ j, importance });
arr[j] = importance;
}
sort(arr, arr + N, greater<int>()); // 중요도 내림차순
index = 0; // arr에서 사용하기 위한 변수
while (index < N) {
if (q.front().second == arr[index]) {
if (q.front().first == M) {
cout << index + 1 << '\n';
break;
}
index++;
q.pop();
}
else {
pair<int, int> temp = q.front();
q.pop();
q.push(temp);
}
}
}
}