[C++] 프로그래머스 문자열 잘라서 정렬하기

문제설명

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

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


제한사항

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


입출력 예

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


풀이

myString 문자열을 “x”로 기준으로 나눠 각각의 문자열을 담은 배열을 return하는 구현 문제입니다.

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<string> solution(string myString) {
    vector<string> answer;
    string temp = "";
    
    
    for(int i = 0; i < myString.length(); i++)
    {
        if(myString[i] == 'x')
        {
            if(temp != "")
            {
                answer.push_back(temp);
                temp = "";
            }
        }
        else
        {
            temp.push_back(myString[i]);
        }
    }
    
    if(temp != "")
        answer.push_back(temp);
    
    sort(answer.begin(), answer.end());
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment