최대 1 분 소요

문제 설명

프로그래머스 181866번 문자열 잘라서 정렬하기

문자열 myString이 주어집니다. “x”를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.

단, 빈 문자열은 반환할 배열에 넣지 않습니다.

제한 사항

  • 1 ≤ myString ≤ 100,000
    • myString은 알파벳 소문자로 이루어진 문자열입니다.

입출력 예시

myString result
“axbxcxdx” [“a”,”b”,”c”,”d”]
“dxccxbbbxaaaa” [“aaaa”,”bbb”,”cc”,”d”]

입출력 예 설명 1

  • myString을 “x”를 기준으로 자른 배열은 [“a”,”b”,”c”,”d”]이며, 이 배열은 이미 사전순으로 정렬된 상태입니다. 따라서 해당 배열을 return 합니다.

입출력 예 설명 2

  • myString을 “x”를 기준으로 자른 배열은 [“d”,”cc”,”bbb”,”aaaa”]이며, 이 배열을 사전순으로 정렬하면 [“aaaa”,”bbb”,”cc”,”d”]입니다. 따라서 해당 배열을 return 합니다.

코드 구현

Python

def solution(myString):
    splitString = myString.split("x")
    answer = []
    
    for x in splitString:
        if x != "":
            answer.append(x)
    
    answer.sort()
    
    return answer

Java

import java.util.ArrayList;

class Solution {
    public String[] solution(String myString) {
        String[] splitString = myString.split("x", myString.length());
        ArrayList<String> answer = new ArrayList<>();

        for (int i = 0; i < splitString.length; i++) {
            if (!splitString[i].equals("")) {
                answer.add(splitString[i]);
            }
        }
        
        answer.sort(String::compareTo);

        return answer.toArray(new String[0]);
    }
}