※. 올바른 자리에 없는 원소들은 전부 작업을 거쳐야 한다.
(1, 5, 2, 3, 4)
※. 올바르지 않은 원소들 중 가장 작은것부터 넣어야 한다.
(1,5,2,3,4 -> 1 - 2 3 - 4 5 작업이 끝나면 정렬 완료)
※. 배열을 탐색하며 순서대로 있는 원소는 작업하지 않는다.
(x,1,y,2,z,3 -> 1,2,3 - x y z 1 2 3 은 원소를 뺄 때 정렬)
※. n개의 배열 중 순서대로 있는 원소(w)를 뺀 후 작업해야 하는 나머지 원소(n-w)를 k로 나누어 준다.
(+k 는 정렬해야 할 배열이 k개 미만일 때도 최소 1번의 작업을 해야하기 때문에)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
while(T --> 0) {
long ans = 0;
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
LinkedList<Integer> que = new LinkedList<>();
st = new StringTokenizer(br.readLine()," ");
int idx = 1;
for(int i = 0; i < n; i++) {
que.add(Integer.parseInt(st.nextToken()));
}
int cnt = 0;
while(!que.isEmpty()) {
int temp = que.poll();
if(temp == idx) {
idx++;
}
}
ans = (n-idx+k) / k;
sb.append(ans).append('\n');
}
System.out.println(sb);
}
}
'코드포스' 카테고리의 다른 글
[Hello 2023] D. Boris and His Amazing Haircut (0) | 2023.01.19 |
---|---|
[Codeforces Round #842 (Div. 2)] D. Lucky Permutation (0) | 2023.01.08 |
[Hello 2023] C. Least Prefix Sum (0) | 2023.01.05 |
[Hello 2023] B. MKnez's ConstructiveForces Task (0) | 2023.01.04 |
[Codeforces Round #835 (Div. 4)] F. Quests (0) | 2022.12.16 |