백준 10989 수 정렬하기 3 문제풀이 (JAVA)

0

문제 링크

문제


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();
        
        
    }
    
}

0개의 댓글

관련 채용 정보