본문 바로가기
프로그래머스/level1

[Java][프로그래머스] 문자열 내림차순으로 배치하기

by wave_m 2020. 9. 23.
728x90

문제 설명 : 

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

 

제한 사항 : 

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

입출력 예 : 

s return
"Zbcdefg" "gfedcbZ"

 

 

import java.util.*;

class Solution {
    public String solution(String s) {
        String[] answer = s.split("");
        Arrays.sort(answer);
        Collections.reverse(Arrays.asList(answer));
        
        return String.join("", answer);
    }
}

 

알고리즘 풀이 : 

1. answer이라는 문자열 배열에 s를 split을 사용해 한 글자씩 잘라서 저장

2. Arrays.sort를 사용하여 answer을 내림차순으로 정렬

- Arrays.sort를 사용하지 않으면 입출력 예로는 오류가 뜨지 않지만 다른 경우에 오류가 뜸

3. Arrays.asList를 사용해 answer을 list화 시킨 후 Collections.reverse을 사용해 역순으로 만듬

- Collections.reverse()는 list를 내림차순으로 정렬시킬 수 있음

4. list 자체는 하나하나의 원소이기에 join을 사용해 String 형식으로 answer의 각 원소를 붙여준 뒤 return을 사용해 반환

 

 

728x90