

가장 간단한 방법으로 선택정렬 구현과 Array.sort() 메소드 사용
선택정렬 :
첫 번째 인덱스부터 시작하여 뒤의 인덱스들의 값들과 비교하여 최솟값들을 차곡차곡 쌓아나가는 방법으로, 시간복잡도는 O(n2)
Array.sort() :
자바에서 기본적으로 제공되는 메소드, 자동으로 ()에 들어가는 해당 배열이 정렬
시간복잡도는 평균 O(nlogn)이며, 최악의 경우 O(n2)임
입력 방식 2가지로 풀이 => Scanner, BufferedReader
- Scanner과 BufferedReader의 차이
평균적으로 입력 속도가 Scanner 사용시 4.8448초, BufferedReader 사용 시 0.6585초로, BufferedReader 사용할 때가 훨씬 성능이 좋음
참고: https://www.acmicpc.net/blog/search/%EC%9E%85%EB%A0%A5+%EC%86%8D%EB%8F%84- 성능차이가 나는 이유
Scanner는 1KB 크기의 버퍼를 갖기 때문에 입력이 바로 전달
BufferedReader는 8KB 크기의 버퍼를 가져 buffer에 입력들을 저장하였다 한 번에 전송
import java.util.Scanner;
public class _2750 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
int[] number = new int[count];
for (int i = 0; i < number.length; i++) {
number[i] = scanner.nextInt();
}
int tmp;
for (int i = 0; i < count; i++) {
for (int j = i+1; j < count; j++) {
if(number[i] > number[j]) {
tmp = number[i];
number[i] = number[j];
number[j] = tmp;
}
}
}
for (int i = 0; i < number.length; i++) {
System.out.println(number[i]);
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class _2750 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
int[] number = new int[count];
for (int i = 0; i < number.length; i++) {
number[i] = scanner.nextInt();
}
Arrays.sort(number);
for (int i = 0; i < number.length; i++) {
System.out.println(number[i]);
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class _2750_BufferedReader {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
int[] number = new int[count];
for (int i = 0; i < count; i++) {
number[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(number);
for (int result : number) {
System.out.println(result);
}
}
}