728x90
🔗 문제 링크
https://www.acmicpc.net/problem/15688
📌 문제 개요
- N개의 정수가 주어지고 이를 오름차순으로 정렬하는 문제
- N의 최대값이 1,000,000으로 매우 크기 때문에 입출력 속도가 중요
📌 접근 방법
- 배열에 숫자를 입력받는다
- Arrays.sort()로 정렬한다
- 출력 시 StringBuilder를 사용해 성능을 개선한다
📌 핵심 아이디어
- 단순 정렬 문제지만 출력이 핵심
- System.out.println을 반복하면 시간초과 발생 가능
- StringBuilder로 모아서 한 번에 출력
📌 전체 코드
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 num : arr){
sb.append(num).append("\n");
}
System.out.print(sb);
}
}
📄 정리
- 정렬 자체는 어렵지 않지만 입출력 최적화가 핵심인 문제
- 대용량 데이터 문제에서는 출력 방식도 성능에 큰 영향을 준다
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 백준 10431 줄세우기 JAVA 풀이 (구현, 정렬, 시간복잡도) (0) | 2026.04.12 |
|---|---|
| [백준] 11576번 : Base Conversion (JAVA) (0) | 2026.04.12 |
| 백준 13301 타일 장식물 JAVA 풀이 (피보나치, DP) (0) | 2026.04.08 |
| 백준 1769 3의 배수 JAVA 풀이 (문자열, 구현, 수학) (0) | 2026.04.07 |
| 백준 1236 성 지키기 JAVA 풀이 (구현, 그리디) (0) | 2026.04.06 |