
난이도: ★★☆☆☆ • solved on: 2025-12-27

자료구조
int[] : 입력 수 저장StringBuilder : 출력 버퍼링알고리즘/기법
Arrays.sort(int[]) : 정렬핵심 키워드
O(N log N)
- 문제 분해
- 입력이 많으므로
BufferedReader로 읽는다.int[]에 저장 후Arrays.sort()로 정렬한다.- 출력이 병목이 될 수 있으므로
StringBuilder에 누적 후 한 번에 출력한다.
핵심 로직 흐름
read N for i in 0..N-1: arr[i] = read int sort(arr) sb = "" for each x in arr: sb += x + "\n" print(sb)예외 처리
- 별도 예외 케이스는 없고, 시간 초과 방지를 위해 출력 방식이 핵심이다.
import java.util.*;
import java.io.*;
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);
}
}
O(N log N) + 출력 O(N)O(N) (배열 + 출력 버퍼)Arrays.sort() 자체는 O(N log N)인데도 시간 초과가 발생해서 원인을 정렬로 오해했다.System.out.println()을 N번 호출하는 출력(I/O) 이었고, StringBuilder로 누적 후 한 번에 출력하니 해결되었다.입력이 크면, 알고리즘 시간 복잡도만 맞춰도 부족하고 I/O 최적화가 통과/실패를 결정할 수 있다.
자바에서는 보통:
BufferedReaderStringBuilder + System.out.print비슷한 유형 (GPT 추천):
확장 문제 (GPT 추천):