간단하게 우선순위 큐 사용하여 풀이하면 되는 문제로 모든 예제에서 N번째 큰 수를 구해야하므로 내림차순으로 정렬하면 된다.
우선순위 큐 오름차순
PriorityQueue<Integer> queue = new PriorityQueue<>();
우선순위 큐 내림차순
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
queue.add(Integer.parseInt(st.nextToken()));
}
}
for (int i = 0; i < N - 1; i++) {
queue.poll();
}
System.out.println(queue.poll());
}
}