CS/프로그래머스

문제 // Programmers // LEVEL1 // String // 문자열 내림차순으로 배치하기 // Java

문스코딩 2018. 9. 11. 18:44

프로그래머스

문자열 내림차순으로 배치하기

업데이트 :: 2018.09.11



문제

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

제한 사항
str은 길이 1 이상인 문자열입니다.

코드

1차풀이

public class Programmers_8 {
    public String solution(String s) {

        // == 공간복잡도 늘리기 ==
        Character[] tempArray = new Character[s.length()];
        char[] charArray = new char[s.length()];
        for(int i=0; i<s.length(); i++)
            tempArray[i] = s.charAt(i);
        Arrays.sort(tempArray, Collections.reverseOrder()); // == primitive reverse 불가 ==

        // == Character -> char ==
        for(int i=0; i<tempArray.length; i++)
            charArray[i] = tempArray[i];

        return new String(charArray);
    }
}
  • char 배열은 reverse() 처리가 지원되지 않음
  • Boxed된 Character 배열로 reverse() 정렬한후 char 배열로 변환

예제

StringBuilder 통한 Reverse

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

Created by MoonsCoding

e-mail :: jm921106@gmail.com

반응형