문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
코드
import java.util.Arrays;
class Solution {
public String solution(String s) {
char[] arr = s.toCharArray();
Arrays.sort(arr);
StringBuffer sb = new StringBuffer(new String(arr));
String answer = sb.reverse().toString();
return answer;
}
}
설명
- char[] arr = s.toCharArray();
- 문자열은 수정할 수 없는 객체이기 때문에 배열로 전환 후에 문자를 다루기 위해 문자열 s를 문자 배열(arr[])로 변환
- Arrays,sort(arr);
- arr 배열을 알파벳 순의 오름차순으로 정렬해주는 메서드.
- StringBuffer sb = new StringBuffer(new String(arr));
- StringBuffer는 문자열을 수정할 수 있는 객체. 정렬된 문자 배열 arr를 StringBuffer 객체로 생성
- String answer = sb.reverse().toString();
- StringBuffer의 reverse() 메서드를 사용하여 문자열을 역순 정렬.그 결과를 다시 toString()을 통해 문자열로 변환하여 answer 변수에 저장
- return answer;
- 최종적으로 역순으로 정렬된 문자열 반환
전체 과정
- 문자 배열로 변환: ['Z', 'b', 'c', 'd', 'e', 'f', 'g']
- 알파벳 순으로 정렬: ['Z', 'b', 'c', 'd', 'e', 'f', 'g'] → ['Z', 'b', 'c', 'd', 'e', 'f', 'g']
- 역순 변환: "gfedcbZ"
- 결과: "gfedcbZ"
- 결과 반환
'알고리즘' 카테고리의 다른 글
[알고리즘] 자료구조 해시테이블 | 체이닝 vs 오픈 어드레싱 차이 (0) | 2025.03.13 |
---|---|
[알고리즘] 실무에 바로 쓰이는 알고리즘 by Python | 파이참 자동완성 끄기 (1) | 2025.02.04 |
[알고리즘] 약수 구하기 | 프로그래머스 약수의 개수와 덧셈 (0) | 2024.09.27 |
[알고리즘] 프로그래머스 핸드폰 번호 가리기 | 자바 문자열 길이 구하기 | 자바 문자열 접근 (0) | 2024.09.12 |
[알고리즘] 프로그래머스 Lv.1 두 정수 사이의 합 (0) | 2024.08.26 |