const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let [n, ...testcases] = input;
// let [n, m] = [4, 2]
// const priQ = [1, 3, 2, 4]
for (let i = 0; i < n; i++) {
let m = Number(testcases[i * 2].split(' ')[1])
let priQ = testcases[i * 2 + 1].split(' ').map(Number);
let answer = 0;
while (true) {
let e1 = priQ.shift()
if (e1 < Math.max(...priQ)) {
priQ.push(e1);
if (m == 0) { // 만약 방금 맨 뒤로 보낸게 타겟이었다면.
m = priQ.length - 1
} else {
m--
}
} else { // 제일 큰숫자 나감
answer++;
if (m == 0) { // 방금 나간게 타겟이었다면.
break;
} else {
m--;
}
}
}
console.log(answer)
}
Math.max(...priQ) <- 이게 되는걸 몰라서 애먹었다.
'알고리즘 (with. 백준 문제풀이) > Queue' 카테고리의 다른 글
백준 2161번 [카드1] (0) | 2023.09.18 |
---|---|
백준 1158번 [요세푸스 문제] (0) | 2023.09.18 |