코테/백준

[백준/JAVA] 2075번: N번째 큰 수

imname1am 2023. 8. 14. 23:40
반응형

🔺 문제

 

2075번: N번째 큰 수

첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.

www.acmicpc.net

 

 

🔺 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.*;
import java.io.*;
 
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> pq = new PriorityQueue<>(Collections.reverseOrder());    // 우선순위 큐, 내림차순 정렬
 
        for(int i = 0 ; i < N ; i++) {
            st = new StringTokenizer(br.readLine(), " ");  
            for(int j = 0 ; j < N ; j++) {
                int num = Integer.parseInt(st.nextToken());
                pq.add(num);
            }
        }
        
        for(int i = 0 ; i < N - 1 ; i++) {
            pq.poll();
        }
        
        System.out.println(pq.poll());
    }
}
 
cs
✅ 해결 아이디어
✔ 우선순위 큐 (내림차순 정렬)
- 내림차순 정렬이 되도록 우선순위 큐를 선언하고, 여기에 값들을 넣도록 했다.
- N-1번 poll()해서 N-1번째 큰 값까지 구한다.
- 이후 한 번만 더 뽑아내서 마지막으로 N번째 큰 값을 출력하게 했다.

 


🔺 다른 풀이들

- 다들 비슷하심


💬 느낀 점

생각한 방향이 맞았다... 감사합니다(?)

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

 

[Java] PriorityQueue(우선순위 큐) 클래스 사용법 & 예제 총정리

우선순위 큐(Priority Queue)란? 일반적으로 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 구조 즉 먼저 들어온 데이터가 먼저 나가는 구조를 가집니다

coding-factory.tistory.com

 

반응형