[프로그래머스] 문자열 내림차순으로 배치하기 - Java

김동현·2022년 6월 1일

문자열 내림차순으로 배치하기 문제
https://programmers.co.kr/learn/courses/30/lessons/12917

문제설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

제한 조건

  • str은 길이 1 이상인 문자열입니다.

입출력 예

sreturn
"Zbcdefg""gfedcbZ"


내 코드

import java.util.Arrays;
class Solution {
    public String solution(String s) {
        String[] arr = s.split("");
        StringBuilder sb = new StringBuilder();
        Arrays.sort(arr);

        for(int i = arr.length - 1 ; i >= 0; i--){
            sb.append(arr[i]);
        }
        String answer = sb.toString();
        return answer;
    }
}

다른 사람 코드

import java.util.Arrays;
class Solution {
    public String solution(String s) {
        char[] arr = s.toCharArray();
        Arrays.sort(arr);
        return new StringBuilder(new String(arr)).reverse().toString();
    }
}
  • 기본적으로 Arrays.sort(문자열 관련 배열)을 하면 대문자가 소문자보다 우선시 되고 알파벳 순으로 정렬이 된다.
  • 문제에서는 문자를 큰 것부터 작은 순으로 정렬하고, 대문자가 소문자보다 작은 것으로 간주한다 하였으니 Arrays.sort()를 통해 정렬 후 for문을 뒤에서 부터 돌려 StringBuilder에 넣어주었다.
  • 다른 사람 코드는 StringBuilder.reverse() 메서드를 통해 문자열을 내림차순으로 배치하였다.

    알게된 점

  • StringBuilder.reverse() 메서드를 통해서도 거꾸로 배치할 수 있다는 것을 알게되었다.
profile
오늘은 오늘

0개의 댓글