프로그래머스 문자열 내림차순 정렬하기 - 자바

바그다드·2023년 10월 8일
0

문제

풀이

public class Pro_문자열내림차순정렬하기 {

    public String solution(String s) {
        String answer = "";
        String[] arr= s.split("");
        // Collections.reverseOrder()를 인자로 전달하거나
        // Comparator를 직접 구현해줘야함
        Arrays.sort(arr,Collections.reverseOrder());
        for(String str: arr){
            answer+=str;
        }
        return answer;
    }
}

리뷰

기본적인 문제이지만 Arrays.sort를 이용한 내림차순 정렬 방법이 제대로 숙지되어 있지 않아 짚어보려고 한다.

Arrays.sort()는 주어진 배열을 오름차순으로 정렬하는 메서드이다.
Comparable이 구현된 객체라면 적용이 가능하다.
이 메서드를 이용해 내림차순으로 정렬하려면 다음과 같은 방법이 있다.

  1. Collections.reverseOrder()를 넘기기
    Arrays.sort(arr, Collections.reverseOrder());

  2. Comparator를 직접 구현하기

Arrays.sort(arr, new Comparator<Integer>() {
    @Override
    public int compare(Integer i1, Integer i2) {
        return i2 - i1;
    }
});
  • 여기서 Comparable과 Comparator의 차이에 대해서 잘 알지 못했는데,
    Comparable은 객체 자신과 다른 객체를 비교하는데 사용을 하고,
    Comparator는 두개의 객체를 비교하는데 사용한다.
profile
꾸준히 하자!

0개의 댓글