N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
1부터 10000이 최대 범위인 점을 이용했다. 배열을 10000개 만들어
각 수가 나오면 배열의 값을 1 증가시켰다.
그래서 처음부터 배열의 요소만큼 출력하면 끝이 난다.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String [] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int num[] = new int [10001];
int temp;
for(int i=0;i<N;i++) {
temp = Integer.parseInt(br.readLine());
num[temp-1]++;
}
for(int i=0;i<10001;i++) {
while(num[i]>0) {
bw.write(i+1+"\n");
num[i]--;
}
}
bw.flush();
br.close();
bw.close();
}
}