반응형
java.util.Arrays 의 sort() 함수를 이용해서 간단하게 풀었다.
Scanner를 이용한 방법
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] list = new int[N];
for(int i=0; i<N; i++){
list[i] = sc.nextInt();
}
for(int j=0; j<N; j++){
Arrays.sort(list);
System.out.println(list[j]);
}
sc.close();
}
}
BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] list = new int[N];
for(int i=0; i<N; i++){
list[i] = Integer.parseInt(br.readLine());
}
for(int j=0; j<N; j++){
Arrays.sort(list);
System.out.println(list[j]);
}
br.close();
}
}
📖 Array.Sort()
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Arrays.html#sort(byte%5B%5D)
Arrays.sort()는 Dual-Pivot Quicksort 알고리즘을 사용한다.
위 사진을 보면 Arrays.sort() 는 다양한 타입들에 대한 오름차순 정렬을 해준다는 것을 알 수 있다.
또한, 특정 인덱스 범위내에서 정렬하는 것도 가능하다. Arrays.sort(기본타입[], int fromIndex, int toIndex)는 인덱스 범위 내에서 정렬을 한다.
그 중 맨 아래의 두 함수는 내림차순도 가능하다.
위는 시작 인덱스와 끝 인덱스 사이를 사용자가 지정한 Comparator 에 따라 정렬해줄 수 있고, 아래는 전체 배열을 사용자가 지정한 Comparator에 따라 정렬해준다.
예시)
import java.util.Arrays;
import java.util.Collections;
public class Main{
public static void main(String[] args){
int[] list = {1,3,5,4,2};
int[] list2 = {8,2,4,6,1,3,5,7};
Integer[] listArr = {1,3,5,4,2};
System.out.print("오름차순 정렬 : " );
for(int i=0; i<list.length; i++){
Arrays.sort(list);
System.out.print (list[i] + " ");
}
System.out.println();
System.out.print("인덱스 범위 내 정렬 : " );
for(int i=0; i<list2.length; i++){
Arrays.sort(list2, 0, 5);
System.out.print (list2[i] + " ");
}
System.out.println();
System.out.print("내림차순 정렬 : " );
for(int j=0; j<listArr.length; j++){
Arrays.sort(listArr, Collections.reverseOrder());
System.out.print (listArr[j] + " ");
}
}
}
실행 결과)
그 대신 내림차순으로 정렬하려면 기본 타입(int, long 등)이 아닌 Wrapper 클래스(Integer, Long 등)이어야 한다.
물론 Array.sort()를 사용하지 않고 다른 정렬 방법을 통해서도 문제를 풀 수 있다. 그건 우선 공부한 후에 정리할 듯 싶다!
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 25305 - 커트라인 (JAVA/ 자바) (0) | 2024.05.31 |
---|---|
[백준] 2587 - 대표값2 (JAVA/ 자바) (0) | 2024.05.30 |
[백준] 2839 - 설탕 배달 (JAVA/ 자바) (0) | 2024.05.28 |
[백준] 1436 - 영화감독 숌 (JAVA/ 자바) (0) | 2024.05.14 |
[백준] 19532 - 수학은 비대면강의입니다. (JAVA/ 자바) (0) | 2024.05.05 |