import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(bf.readLine());
int[] arr = new int[num];
for (int i = 0; i<num; i++) {
arr[i] = Integer.parseInt(bf.readLine());
}
Arrays.sort(arr);
for (int N : arr) {
sb.append(N).append('\n');
}
System.out.println(sb);
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(bf.readLine());
int[] arr = new int[10001];
for (int i = 0; i<num; i++) {
arr[Integer.parseInt(bf.readLine())]++;
}
for (int i = 0; i<10001; i++) {
while (arr[i] > 0) {
sb.append(i).append('\n');
arr[i]--;
}
}
System.out.println(sb);
}
}
Arrays.sort를 사용하면 최악의 경우 O(N제곱)만큼 시간복잡도가 나오기 때문에 아슬아슬하게 통과할것이다.
Counting sort는 입력받은 숫자를 인덱스로 받고 입력받은 숫자가 나올때마다 1씩 증가시켜 몇번째에 올지와 그 숫자가 얼마나 있는지 나타내준다.
위 = #2
아래 = #1