알고리즘

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

muerha 2024. 11. 18. 09:47

 

 

 

 


 

 

 

나의 풀이

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        char[] c = s.toCharArray();
        Arrays.sort(c);
        String str = new String(c);
        answer = new StringBuilder(str).reverse().toString();
        return answer;
    }
}

 

 

 

StringBuilder

기존 문자열(String)은 불변 특성을 가지므로 문자열을 변경할 때마다 새로운 객체를 생성해야 하지만, StringBuilder는 내부 버퍼를 사용하여 변경 작업을 효율적으로 처리

public class Main {
    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("문자열 ").append("연결");
//        String str = stringBuilder;   // String에 StringBuilder를 그대로 넣을 순 없다. toString()을 붙여야 한다
        String str = stringBuilder.toString();
        // 두 println()은 같은 값을 출력한다
        System.out.println(stringBuilder);
        System.out.println(str);
    }
}

 

 

문자열이나 문자를 정렬할 때 Unicode(유니코드) 값을 기준으로 한다.

 

유니코드 값

  • 대문자(A-Z): 65~90
  • 소문자(a-z): 97~122

 

 

 

다른 사람의 풀이

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

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] str = s.split("");
        Arrays.sort(str, Collections.reverseOrder());
        
        for(String a : str)
           answer += a;
        
        return answer;
    }
}