본문 바로가기
알고리즘/코딩 테스트 문제

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

by 진진리 2023. 10. 10.
728x90
import java.util.Arrays;

class Solution {
    public String solution(String s) {
        char[] char_arr = s.toCharArray();
        Arrays.sort(char_arr);
        String str = new String(char_arr);
        String answer = "";
        int len = str.length();
        for(int i=0;i<len;i++){
            answer += str.charAt(len-i-1);
        }
        return answer;
    }
}

1. 정렬할 문자열을 toCharArray()를 이용해 char 배열로 변환

2. Arrays.sort()로 문자 배열을 오름차순으로 정렬

3. 정렬한 문자 배열을 문자열 str로 변환

4. str을 거꾸로 대입하여 내림차순 정렬로 만든 문자열 answer

 

 

- 다른 사람 풀이 참고

  • StringBuilder: 변경할 수 없는 String과 달리 기존의 데이터를 변경가능
StringBuilder sb = new StringBuilder("aaa"); //선언할 때 문자열 바로 넣을 수 있음

//주요 메서드
sb.append("ABC"); //문자열 더하기
sb.insert(int offset, String str); //ofset 위치에 str 추가
sb.replace(int start, int end, String str); //start부터 end-1까지의 내용을 str로 대체
sb.deleteCharAt(int index); //인덱스에 위치한 문자 삭제
sb.delete(int start, int end); //start에서 end-1까지의 문자 삭제
sb.reverse(); //해당 문자 전체를 뒤집음
sb.setCharAt(int index, String s); //인덱스 위치의 문자를 s로 변경
sb.setLength(int len); //문자열 길이 조정. 공백으로 채우거나 삭제
sb.substring(int start, (int end)); //start부터 end-1까지 인덱싱. end는 생략 가능
sb.toString(); //String으로 변환

System.out.println(sb);

 

 

- 코드 수정

import java.util.Arrays;


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