#2020. 09. 27
문자열 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 answer = "";
int length = s.length();
int[] arr = new int[length];
for(int i = 0; i < length; i++) {
arr[i] = s.charAt(i);
}
for(int i = 0; i < length - 1; i++) {
for(int j = 0; j < length - i - 1; j++) {
if(arr[j] < arr[j + 1]) swapArr(arr, j, j + 1);
}
}
for(int i = 0; i < length; i++) {
answer += (char)arr[i];
}
return answer;
}
public void swapArr(int[] arr, int a, int b) {
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
}
문자열 s를 받은 후, 문자열의 한글자씩 배열에 담고, 해당 글자들을 비교해가면서, 제일 작은 것을 제일 뒤로 보내는 반복문을 이용했습니다. 매 반복문마다 가장 큰 것은 가장 앞에 오게 되는 것입니다. 그 후에 정렬이 완료되면, 배열의 정렬된 순서대로 문자열로 합쳐서 리턴해줍니다!