https://www.acmicpc.net/problem/2075
문제
풀이
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));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
PriorityQueue<Integer> queue = new PriorityQueue<>((o1, o2) ->{
int i = o1 > o2 ? -1 : 1;
return i;
});
for(int i = 0; i < n; i++){
st = new StringTokenizer(br.readLine());
for(int j = 0; j < n; j++){
queue.offer(Integer.parseInt(st.nextToken()));
}
}
for(int i = 0; i < n-1; i++){
queue.poll();
}
System.out.println(queue.poll());
}
}
n번째 큰 수가 뭐지? 에 대해 처음에 바로 이해하지는 못했다. 2차원 배열이기 때문에 어떤 행 혹은 열에서 찾으라는 의미인 줄 알았기 때문이다. 하지만 단순하게 정렬한 뒤에 찾으라는 소리였다.
배열로 받아 Arrays.sort()를 사용하면 각 행에 대해서 적용되기 때문에 해결에 어려움이 있다.
따라서 숫자가 들어오는대로 우선순위 큐에 넣어서 람다식을 통해 내림차순 정렬을 한 뒤에 n-1개의 데이터를 뽑아내고 n번째 데이터를 출력하면 된다.
'문제 풀이 > 백준' 카테고리의 다른 글
[백준] 2331번. 반복수열 (JAVA) (0) | 2024.02.11 |
---|---|
[백준] 13560번. 축구 게임(JAVA) (1) | 2024.02.09 |
[백준] 1715번. 카드 정렬하기 (JAVA) (0) | 2024.02.08 |
[백준] 11286번. 절댓값 힙 (JAVA) (0) | 2024.02.06 |
[백준] 11279번. 최대 힙 (JAVA) (1) | 2024.02.06 |