728x90
🔗 문제 링크
https://www.acmicpc.net/problem/11931
📌 문제 개요
N개의 정수가 주어질 때, 이를 내림차순으로 정렬하여 출력하는 문제
📌 접근 방법
- 입력받은 값을 배열에 저장
Arrays.sort()를 사용하여 오름차순 정렬 수행- 정렬된 배열을 뒤에서부터 출력하여 내림차순으로 변환
📌 핵심 아이디어
int\[\]배열은Comparator를 사용할 수 없음- 따라서 내림차순 정렬을 위해
- Integer[] 사용하거나
- 오름차순 후 역순 출력 전략 사용
이번 풀이에서는 성능을 고려해 int[] + 역순 출력 사용
📌 전체 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
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[] arr = new int[N];
for(int i = 0; i < N; i++){
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
StringBuilder sb = new StringBuilder();
for(int i = N - 1 ; i >= 0; i--){
sb.append(arr[i]).append("\n");
}
System.out.println(sb);
}
}
📌 정리
- 정렬 문제는 자료형 선택이 중요
- int[] → 빠름 /
Integer\[\]→ 기능 다양 - 내림차순이 필요할 때는 역순 출력 패턴을 기억하면 유용
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 백준 10826 피보나치 수 4 JAVA 풀이 (DP, BigInteger, 시간복잡도) (0) | 2026.03.30 |
|---|---|
| 백준 24262 알고리즘 수업 - 알고리즘의 수행 시간 1 JAVA 풀이 (수학, 시간복잡도) (0) | 2026.03.29 |
| 백준 5635 생일 JAVA 풀이 (정렬, 시간복잡도) (0) | 2026.03.27 |
| 백준 9656 돌 게임 2 JAVA 풀이 (게임이론, 시간복잡도) (0) | 2026.03.26 |
| 백준 2669 직사각형 네 개의 합집합의 면적 JAVA 풀이 (브루트포스, 구현, 시간복잡도) (0) | 2026.03.25 |