반응형
🔺 문제
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
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 5014번: 스타트링크 (0) | 2023.08.17 |
---|---|
[백준/JAVA] 11365번: !밀비 급일 (0) | 2023.08.16 |
[백준/JAVA] 17266번: 어두운 굴다리 (0) | 2023.08.13 |
[백준/JAVA] 1475번: 방 번호 (0) | 2023.08.12 |
[백준/JAVA] 2512번: 예산 (0) | 2023.08.10 |