본문 바로가기
Language/Java

[Programmers | Java | 연습문제 풀이] 문자열 내림차순으로 배치하기 - Solution with Sorting & Join

by ㅇ달빛천사ㅇ 2024. 6. 29.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기  |  Algorithm CODEKATA

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


🏷 관련 주제 : String Sorting join()




✔️ Solution with Sorting & join()

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

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] strArr = s.split("");
        
        Arrays.sort(strArr, Collections.reverseOrder());
        
        answer = String.join("", strArr);
        
        return answer;
    }
}
채점 결과

✔️ Solution with Stream API

import java.util.Arrays;
import java.util.Collections;
import java.util.stream.Collectors;

class Solution {
    public String solution(String s) {
        String answer = Arrays.stream(s.split("")).sorted(Collections.reverseOrder()).collect(Collectors.joining(""));
        
        return answer;
    }
}
채점 결과

✔️ Solution with String Builder

import java.lang.StringBuilder;
import java.util.Comparator;
import java.util.Arrays;

class Solution {
    public String solution(String s) {
        StringBuilder sb = new StringBuilder();
        String[] sArr = s.split("");
        Arrays.sort(sArr, Comparator.reverseOrder());
        for (String s1 : sArr) {
            sb.append(s1);
        }
        
        return sb.toString();
    }
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 매개변수로 받은 문자열 s의 문자를 큰 문자부터 작은 문자 순으로 정렬하여 반환하시오.


문자열.split("')으로 문자열 배열을 만든 후,
Arrays.sort(문자열 배열, Collections.reverseOrder());내림차순 정렬 후,
String.join("",문자열 배열);을 이용하여 문자열로 변환 후, 반환하여 문제를 풀었다.

두번째로는 Stream API로 문제를 풀어보았다.
s.split("")으로 문자열 배열을 Arrays.stream()에 담아
sorted(Collections.reverseOrder())내림차순 정렬
collect(Collectors.joining(""))으로 문자열로 변환 후, 반환하였다.

세번째로는 String Builder도 사용해 보았는데
첫번째 코드와 비슷한 속도를 내 주었다.

💬 무엇을 새롭게 알았는지

문자열을 다루는 문제를 풀어보았다.
문자열 관련 메서드 split(), join() 등을 사용해 보았고
Stream API로 코드를 작성해 보았다.
String Builder를 사용해 보았다.


📚 References(참고 자료)







728x90


Top