코디잉
2075번: N번째 큰 수 [JAVA] 본문
https://www.acmicpc.net/problem/2075
2075번: N번째 큰 수
첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.
www.acmicpc.net
접근 방식)
N²개의 수가 주어졌을 때, N번째 큰 수를 찾는 것이므로,
1. 내림차순의 우선순위 큐를 만들어서, N²개를 입력한다.
2. N - 1개 까지의 큰 수를 poll()하고
3. N번째로 큰 수를 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class B_2075 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
StringTokenizer st;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
pq.add(Integer.parseInt(st.nextToken()));
}
}
for (int i = 0; i < N - 1; i++)
pq.poll();
System.out.println(pq.poll());
}
}
'자료구조&알고리즘 > 백준' 카테고리의 다른 글
11286번: 절댓값 힙 [JAVA] (0) | 2023.07.20 |
---|---|
4358번: 생태학 [JAVA] (0) | 2023.07.20 |
11279번: 최대 힙 [JAVA] (0) | 2023.07.20 |
2346번: 풍선 터뜨리기 [JAVA] (0) | 2023.07.19 |
1935번: 후위 표기식2 [JAVA] (1) | 2023.07.19 |
Comments