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

최지나·2023년 10월 8일
0

코딩테스트

목록 보기
25/154

문제

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

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

입출력 예

sreturn
"Zbcdefg""gfedcbZ"

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/12917

생각

  • String을 글자 수만큼 쪼갠 뒤 정렬하고 StringBuilder를 활용하여 다시 문자열로 합치고 거꾸로 (reverse) 정렬하자

코드

import java.util.*;

class Solution {
    public String solution(String s) {
        
        String[] sList = s.split("");
        
        Arrays.sort(sList);
        
        StringBuilder sb = new StringBuilder();
        for (String str: sList){
            sb.append(str);
        }
        
        return sb.reverse().toString();
    }
}

다른 사람의 풀이

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());
    }
}
  • 스트림을 사용한 풀이가 있어 가져왔다. 역시 stream 잘 쓰는 거 멋있다,,,, 물론 속도 측면에서는 단점이 존재하지만, 그만큼 간단한 풀이를 할 수 있기에 stream을 사용하는 풀이들에도 도전해 봐야겠다<<!!!
profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글