n개의 수를 오름차순으로 정렬하는 문제이다. n의 개수와 그 절댓값의 크기가 상당히 넓어서 처음에 아무 생각 없이 sort를 썼다가 시간 초과가 났다.
시간복잡도를 줄이기 위해서 다음 방법들을 사용했다.
아래 코드로 1616ms가 나왔는데 시간을 더 줄일 방법이 있을 것이다. 이것에 대해 더 고민해봐야겠다.
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());
ArrayList<Integer> set = new ArrayList<>();
for(int i=0; i<n; i++)
set.add(Integer.parseInt(br.readLine()));
Collections.sort(set);
BufferedWriter bw =
new BufferedWriter(new OutputStreamWriter(System.out));
for(int i: set)
bw.write(i+"\n");
bw.flush();
}
}