[アルゴリズム]バックアップ-10989(ソート3)/java
6526 ワード
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);
}
}
入力した数字の最値に従って複文を行いたいのですが、最値をチェックする条件文がずっと繰り返されていて、かえって性能が落ちています.カウントソートは意外にも大きな数に適しているので、カウントソートで解決しようとします.Reference
この問題について([アルゴリズム]バックアップ-10989(ソート3)/java), 我々は、より多くの情報をここで見つけました https://velog.io/@cheal3/알고리즘-백준-10989-수-정렬하기-3-자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol