코디잉

2075번: N번째 큰 수 [JAVA] 본문

자료구조&알고리즘/백준

2075번: N번째 큰 수 [JAVA]

yong_ღ'ᴗ'ღ 2023. 7. 20. 00:28

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