🔺 문제
https://www.acmicpc.net/problem/11931
11931번: 수 정렬하기 4
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
🔺 코드
- 코드 1) Arrays.sort ()이용해 오름차순 정렬 후, 역순으로 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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));
int N = Integer.parseInt(br.readLine());
int[] A = new int[N];
for(int i = 0 ; i < N ; i++) {
A[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(A);
StringBuilder sb = new StringBuilder();
for(int i = N - 1 ; i >= 0 ; i--) {
sb.append(A[i]).append("\n");
}
System.out.println(sb);
}
}
|
cs |
- 코드2) PriorityQueue의 정렬 조건을 내림차순으로 설정하고, 수를 저장해 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>((o1, o2) -> (o2 - o1)); // 내림차순 정렬
while(N --> 0) {
pq.add(Integer.parseInt(br.readLine()));
}
StringBuilder sb = new StringBuilder();
while(!pq.isEmpty()) {
sb.append(pq.poll()).append("\n");
}
System.out.println(sb);
}
}
|
cs |
✅ 해결 아이디어
✔ 정렬
💥 유의사항
• 시간초과가 발생하지 않도록 주의.... ⇨ Scanner 사용하면 아니 됨...
🔺 다른 풀이들
- Arrays.sort(arr, Collections.reverseOrder())
로 내림차순 정렬하셨다.
[백준] 11931번 : 수 정렬하기 4
백준 온라인 알고리즘 11931번 수 정렬하기 4
velog.io
💬 느낀 점
다양한 정렬 방식을 사용해보자...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 우선순위 큐 내림차순 정렬
[JAVA] Priority Queue(우선순위 큐) 우선순위 조건 변경하기
Priority Queue FIFO(First In First Out)인 일반적인 Queue와 다르게 Priority Queue는 우선순위가 높은 데이터가 먼저 Out된다. 기본적으로 오름차순 정렬을 하게 되는데 정렬 기준을 바꾸고 싶다면 람다식을 이
ynzu-dev.tistory.com
- 다양한 정렬 방식.. 간만에 복습용
기본 정렬 알고리즘(Sorting Algoritm) 요약 정리 (선택, 삽입, 버블, 합병, 퀵) v1.1
정렬 알고리즘은 n개의 숫자가 입력으로 주어졌을 때, 이를 사용자가 지정한 기준에 맞게 정렬하여 출력하는 알고리즘이다.예를 들어 n개의 숫자가 저장되어있는 배열을, 오름차순의 조건으로
hsp1116.tistory.com
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 11057번: 오르막 수 (0) | 2023.08.30 |
---|---|
[백준/JAVA] 1309번: 동물원 (0) | 2023.08.29 |
[백준/JAVA] 10974번: 모든 순열 (0) | 2023.08.27 |
[백준/JAVA] 6603번: 로또 (0) | 2023.08.26 |
[백준/JAVA] 15657번: N과 M (8) (0) | 2023.08.25 |