[알고리즘] 백준 - 10989 (수 정렬하기 3) / 자바

배고픈메꾸리·2021년 2월 1일
0

알고리즘

목록 보기
14/128
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test_10989 {
	public static void main(String[] args) throws Exception {
		int[] count = new int[10001]; // 10000보다 작거나 같은 자연수
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder("");
		int number = Integer.parseInt(bf.readLine()); //입력의 갯수
		
		//int temp = 0; 
		for( int i = 0 ; i < number ; i++) {
			int n = Integer.parseInt(bf.readLine()); //숫자
			//temp = temp < n ? n :temp; 
			count[n]++;
		}
		//for(int i = 1 ; i < temp+1 ; i++) {
		for( int i = 1 ; i < 10001 ; i++) {
			for( int j = 0 ; j < count[i] ; j++) {
				sb.append(i+"\n");
			}
		}
		System.out.println(sb);
	}
}

입력받은 수의 최댓값 만큼 반복문을 돌리려 했지만 최댓값을 체크하는 조건문이 계속 반복되어 오히려 성능이 떨어졌다. 카운팅 정렬이 의외로 큰 수에도 적용되길래 카운팅 정렬으로 해결해 보았다.

profile
FE 개발자가 되자

0개의 댓글