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

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

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

programmers.co.kr

 

 

문제 분석

- 입력받은 문자열 s를 char배열에 할당하여 해당 배열의 값을 list에 추가한다.

- list를 역순 정렬하고 해당 list를 answer에 추가한다.

 

 

문제 풀이_1

1. 입력받은 문자열 s를 char배열에 toCharArray()함수를 사용하여 할당한다.

2. 할당한 배열의 값을 list에  add한다.

3. list의 값을 Collections.sort를 사용하여 역순 정렬한다.

4. list의 값을 get하여 answer에 추가하여 반환한다.

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";

        char[] cArray = new char[s.length()];
        cArray = s.toCharArray();
        ArrayList<Character> list = new ArrayList<>();
        
        for(int i=0;i<cArray.length;i++){
            list.add(cArray[i]);
        }        
        
        Collections.sort(list, Collections.reverseOrder());
        
        for(int i=0;i<list.size();i++){
            answer += list.get(i);
        }
        
        return answer;
    }
}

 

문제 풀이_2

1. 입력받은 문자열 s를 한글자씩  String 배열에 넣어준다. 

2. sort메소드를 활용하여 역순 정렬한다.

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";

        String[] cArray = new String[s.length()];
        cArray = s.split("");
     
        Arrays.sort(cArray, Collections.reverseOrder());
        
        for(int i=0;i<cArray.length;i++){
            answer += cArray[i];
        }
        
        return answer;
    }
}

 

 

 

 

https://github.com/SOEUN2/Algorithm