[DEV] study&learn
 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

어떻게 하면 2480문제를 더 간단하게 깔끔하게 만들 수 있을까?????

고민고민하다가 다른 사람의 풀이 코드를 보고 Array.sort() 라는 기능을 찾았다!

 

이렇게 또 하나 배워갑니다!!!

 

🌈 Array.sort() 사용법

 

int 배열 정렬 (오름차순, 내림차순)

int[] arr = { 1, 4, 3, 2, 5 };

Arrays.sort(arr);

System.out.print(Arrays.toString(arr)); // [1, 2, 3, 4, 5] 출력

Array.sort() 함수는 기본적으로 매개값으로 전달되는 배열을 오름차순으로 정렬해준다.

String 배열도 Integer와 동일하다!!

 

내림차순

 

sort() 의 인자에 추가로 Colletions.reverseOrder() 를 전달하면 된다.

int[] arr = { 1, 4, 3, 2, 5 }

Arrays.sort(arr, Collections.reverseOrder());

System.out.print(Arrays.toString(arr)); // [5, 4, 3, 2, 1] 출력

 

int 배열, 부분 정렬

위의 예제는 배열 전체를 정렬하였지만, 배열의 일부분만 정렬하는 방법도 있다.

 

sort()의 인자로 처음 idex와 마지막 idex를 전달하여 정렬할 범위를 지정해주면 된다.

int[] arr = { 10, 40, 30, 20, 50 };

Arrays.sort(arr, 0, 2);

System.out.print(Arrays.toString(arr)); // [10, 30, 40, 20, 50] 출력

 

String 배열, 문자열 길이 순서로 정렬(Sorting)

문자열 길이 순서로 정렬을 하고 싶을 때는, 직접 Comparator를 구현해야 한다.

tring[] arr = {"Apple", "Kiwi", "Orange", "Banana", "Watermelon", "Cherry"};

Arrays.sort(arr, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.length() - s2.length();
    }
});

System.out.println("Sorted arr[] : " + Arrays.toString(arr));
// [Kiwi, Apple, Orange, Banana, Cherry, Watermelon] 출력

 

Lambda를 사용하여 아래처럼 더 간결하게 구현할 수도 있다.

String[] arr = {"Apple", "Kiwi", "Orange", "Banana", "Watermelon", "Cherry"};

Arrays.sort(arr, (s1, s2) -> s1.length() - s2.length());

System.out.println("Sorted arr[] : " + Arrays.toString(arr));
profile

[DEV] study&learn

@devjuni

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!