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

YH·2023년 10월 31일
0

문제

문자열 잘라서 정렬하기 : 문제 링크


문제 분석

  • 문자열 myString이 주어진다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return
  • "x"를 기준으로 나눠진 문자열을 저장할 string형 변수 tmp를 선언. for loop를 통해 myString의 첫번째부터 마지막 원소까지 검사하고, if ~ else if 문을 사용하여 "x"가 아닐 경우 tmp에 문자를 저장하고, "x"이고 tmp에 저장된 문자열이 공백이 아닐 경우 answer에 tmp를 저장후, 공백으로 초기화. 마지막 원소가 "x"가 아닐 경우를 고려하여, for loop가 끝난후에 tmp를 answer에 저장. sort() 함수를 사용하여 answer 배열을 사전순(오름차순)으로 정렬하고, 최종적으로 answer를 return

algorithm 헤더의 sort() 함수 사용법
void sort(T start, T end, Compare comp); //comp 인자가 공란이면 오름차순 정렬

  • sort(v.begin(), v.end(), compare); // 사용자 정의 함수 사용
  • sort(v.begin(), v.end(), greater<자료형>()); // 내림차순
  • sort(v.begin(), v.end(), less<자료형>()); // 오름차순

풀이

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

using namespace std;

vector<string> solution(string myString) {
    vector<string> answer;
    string tmp;
    
    for(int i = 0; i < myString.size(); ++i) {
        if(myString[i] != 'x') tmp += myString[i];
        else if(myString[i] == 'x' && tmp != "") {
            answer.push_back(tmp);
            tmp = "";
        }
    }
    if(tmp != "") answer.push_back(tmp);
    sort(answer.begin(), answer.end());
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글