문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

 

제한사항

str은 길이 1 이상인 문자열입니다.

 

입출력 예

s return
"Zbcdefg" "gfedcbZ"

 

나의 풀이

import java.util.*;

class Solution {
    public String solution(String s) {
        char[] ch = s.toCharArray();
        Arrays.sort(ch);
        
        StringBuilder lower = new StringBuilder();
        StringBuilder upper = new StringBuilder();
        
        for(int i=0; i<ch.length; i++){
            if(65 <= ch[i] && ch[i] <= 90){
                upper.append(ch[i]);
            }else {
                lower.append(ch[i]);
            }
        }
        
        upper.reverse();
        lower.reverse();
        
        String afterLower = lower.toString();
        String afterUpper = upper.toString();
        
        
        return afterLower + afterUpper;
    }
}

*참고자료

아스키 코드

 

다른 풀이1

import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
        char[] ch = str.toCharArray();
        Arrays.sort(ch);
        StringBuffer st = new StringBuffer(String.valueOf(ch));
        st.reverse();
        return  st.toString();
	}
}

 

다른 풀이2

// 메서드 체이닝 익히기
import java.util.Arrays;

public class ReverseStr {
    public String reverseStr(String str){
        char[] sol = str.toCharArray();
    Arrays.sort(sol);
    return new StringBuilder(new String(sol)).reverse().toString();
    }

    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}

 

다른 풀이3

import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Comparator;

public class ReverseStr {
    public String reverseStr(String str){
        return Stream.of(str.split(""))
    .sorted(Comparator.reverseOrder())
    .collect(Collectors.joining());
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        ReverseStr rs = new ReverseStr();
        System.out.println( rs.reverseStr("Zbcdefg") );
    }
}
Developer Quarterly