N x N 표의 개의 수가 채워져있다.
모든 수는 자신의 한 칸 위에 있는 수보다 크다.
표에서 N번째 큰 수를 찾으면 된다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
int num = Integer.parseInt(st.nextToken());
if (minHeap.size() < N) {
minHeap.add(num);
} else if (num > minHeap.peek()) {
minHeap.poll();
minHeap.add(num);
}
}
}
System.out.println(minHeap.peek());
br.close();
}
}
우선 순위 큐를 이용해서 어떻게 동작하는 지 이해하고 풀이하니 어렵지 않았다.