https://www.acmicpc.net/problem/1966
import java.io.*;
import java.util.*;
public class Main {
static class Doc implements Comparable<Doc>{
int priority;
int number;
public Doc(int p, int n) {
this.priority = p; this.number = n;
}
@Override
public int compareTo(Doc d) {
if(this.priority > d.priority)
return 1;
else
return -1;
}
}
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test_case = Integer.parseInt(br.readLine());
for(int i = 0; i<test_case; i++) {
String[] str = br.readLine().split(" ");
int N = Integer.parseInt(str[0]);
int M = Integer.parseInt(str[1]);
ArrayList<Doc> printer = new ArrayList<>();
String[] priority = br.readLine().split(" ");
int target = 0;
for(int j = 0; j<N; j++) {
printer.add(new Doc(Integer.parseInt(priority[j]), j));
}
int count = 0;
boolean flag = false;
while(printer.size() > 1) {
Doc d = printer.remove(0);
Doc max = Collections.max(printer);
if(d.priority < max.priority) {
printer.add(d);
}
else { //print
count++;
if(d.number == M) {
flag = true; break;
}
}
}
if(!flag)
count++;
System.out.println(count);
}
}catch(IOException e) {
}
}
}
list를 사용해서 풀었다. collection.max를 사용해서 가장 큰 값을 뽑을 수 있다.
'알고리즘 > 백준' 카테고리의 다른 글
[Baekjoon] 백준 17070 파이프 옮기기 1 (0) | 2021.04.23 |
---|---|
[BaekJoon] 백준 14502번 연구소 (0) | 2020.10.16 |
[BaekJoon] 백준 15683번 감시 (0) | 2020.10.15 |
[BaekJoon] 백준 1916 최소비용 구하기 (0) | 2020.09.23 |
[BaekJoon] 백준 1753번 최단경로 (0) | 2020.09.23 |