문자열 내림차순으로 배치하기 (Level 1)
문제 설명
문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 조건
str은 길이 1 이상인 문자열입니다.
입출력 예
작성 코드
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
class Solution {
public String solution(String s) {
List<Character> list = new ArrayList<>();
for (int i = 0; i < s.length(); i++) {
list.add(s.charAt(i));
}
list.sort(Comparator.reverseOrder());
String answer = "";
for (Character c : list) {
answer += c;
}
return answer;
}
}
코드 설명
- 7번 라인 : 문자열 s을 하나의 문자로 담기 위해 Character형 ArrayList 선언
- 9~11번 라인 : 문자열의 길이만큼 반복하며 charAt() 메서드를 활용하여 list에 하나씩 담아준다.
- 13번 라인 : sort() 메서드를 이용하여 내림차순으로 정렬해준다.
- 15~18번 라인 : 반환 값을 담아줄 String 변수를 하나 선언한 후 향상된 for문을 사용하여 answer에 값을 하나씩 담아준다.
이번 문제는 지난번 정수 내림차순으로 배치하기와 비슷한 문제라 어렵지 않게 풀었다.
풀고 나서 느꼈지만 StringBuilder를 이용해서 풀 수도 있었다. 흑..
만약 sort() 메서드가 궁금하다면 아래 링크를 참조하면 된다.