Level1. 문자열 내림차순으로 배치하기 (Java)

문제설명 )

 

 

풀이Code )

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public String solution(String s) {
        String answer = "";
        ArrayList<Character> lowerList = new ArrayList<>(); //소문자 리스트
        ArrayList<Character> upperList = new ArrayList<>(); //대문자 리스트


        for (int i=0; i<s.length(); i++) {
            if (Character.isUpperCase(s.charAt(i))) { // 대문자일 경우
                upperList.add(s.charAt(i));
            }
            else { // 소문자일 경우
                lowerList.add(s.charAt(i));
            }
        }

        Collections.sort(lowerList); // sort 로 정렬
        Collections.sort(upperList);
        Collections.reverse(lowerList); // 정렬한거 뒤집기
        Collections.reverse(upperList);

        for (int i=0; i<lowerList.size(); i++) { // 정렬하고 뒤집은 문자 문자열에 중첩하여 담기
            answer = answer + lowerList.get(i);
        }

        for (int i=0; i<upperList.size(); i++) {
            answer = answer + upperList.get(i);
        }

        return answer;
    }
}

 

 

풀이법 )

1. 소문자와 대문자를 다른 list에 담아주기 위해 list 선언

2. 대문자는 문자열의 제일 뒤에 붙여주기위해 if문으로 걸러준다.

3. Collections.sort를 이용하여 정렬을 해주고 정렬해준 문자를 뒤집어 준다.

4. 정렬과 뒤집기가 모두 끝난 값들을 answer 문자열에 담아준다.