문자열 내림차순으로 배치하기 문제
https://programmers.co.kr/learn/courses/30/lessons/12917
문제설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 조건
- str은 길이 1 이상인 문자열입니다.
입출력 예
s return "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() 메서드를 통해서도 거꾸로 배치할 수 있다는 것을 알게되었다.