[99클럽 코테 스터디 12일차 TIL] 정렬

sarah·2024년 8월 2일
0

programmers

목록 보기
12/21

문제

  • 문제 설명

문자열 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[] arrS = s.split("");
        Arrays.sort(arrS, Collections.reverseOrder());
        
        StringBuilder sb = new StringBuilder();
        for(String str: arrS) {
            sb.append(str);
        }
        
        return sb.toString();
    }
}

해결방안

String -> split 해서 배열로 만들고, 내림차순으르로 정렬하고 다시 합쳐서 리턴한다.
다른 사람이 푼 코드중에 마음에 드는 코드(스트림 쓰는 연습 하기!!)

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

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public String solution(String s) {
        return Stream.of(s.split(""))
        	.sorted(Comparator.reverseOrder())
            .collect(Collectors.joining());
    }
}

0개의 댓글