문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
import java.util.Arrays;
import java.util.Collections;
class Solution {
public String solution(String s) {
String[] str = s.split("");
Arrays.sort(str, Collections.reverseOrder());
String answer = String.join("", str);
return answer;
}
}
str 배열을 생성하여 문자열 s를 문자로 나누어 할당했습니다. 문제에서 제시한대로 Arrays 클래스의 sort 메소드를 이용하여 문자열을 내림차순으로 정렬했습니다. 오름차순을 정렬할 때와 달리 내림차순을 할 때는 Collections가 필요합니다. 따라서 import도 해주었습니다. 별도 대소문자를 구분하는 조건은 필요하지 않습니다. (이미 아스키코드 상에서 대문자는 65-90, 소문자는 97-122로 분류되어 있기 때문이 아닐까 추측합니다. 대문자를 먼저 오게 해야했다면 번거로웠을 듯 합니다. 아닐 수도 있음!)
배열을 문자열에 직접 할당할 수 없기 때문에, join 메소드를 이용하여 배열을 원소간 구분하는 인자 없이 문자열로 변환한 뒤 할당했습니다.
문자열을 다루는 문제이니만큼 StringBuilder를 사용하는 풀이도 괜찮을 듯합니다.
'프로그래머스 > Lv. 1' 카테고리의 다른 글
[프로그래머스 코딩테스트] 2016년(Java) (0) | 2023.04.15 |
---|---|
[프로그래머스 코딩테스트] 폰켓몬(Java) (0) | 2023.04.13 |
[프로그래머스 코딩테스트] 두 개 뽑아서 더하기(Java) (0) | 2023.04.11 |
[프로그래머스 코딩테스트] 예산(Java) (0) | 2023.04.08 |
[프로그래머스 코딩테스트] 같은 숫자는 싫어(Java) (0) | 2023.04.08 |