반응형
import java.util.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
public class Main{
public static void main(String[] args) {
try {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(bf.readLine());
//리스트 말고 배열로 해야함! idx를 입력받은 수라고 치고, arr[idx]의 값에 그 수가 나온 횟수를 저장하면 메모리 아낄 수 있다.
//n은 10,000이하의 수기 때문에 int로 해도 됨
int arr []=new int[10001];
for(int i=0;i<n;i++) {
//입력받은 수를 idx로 두고 배열값을 플러스. 이러면 sort 과정이 필요없다.
arr[Integer.parseInt(bf.readLine())]++;
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//arr의 모든 원소를 쭉 보기!
for(int i = 1; i < 10001; i++) {
//나온 횟수가 0이상일때만 출력
if (arr[i] > 0) {
//만약 여러번 나왔으면 그 idx를 그만큼 출력해야 되니까 for문 하나 더
for(int j=0;j<arr[i];j++) {
bw.write(i+"\n");
}
}
}
bw.flush();
bw.close();
}catch(Exception e) {
}
}
}
반응형
댓글