[C++] 프로그래머스 접미사 배열

문제설명

어떤 문자열에 대해서 접미사는
특정 인덱스부터 시작하는 문자열을 의미합니다.
예를 들어, "banana"의 모든 접미사는
"banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string이 매개변수로 주어질 때,
my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을
return 하는 solution 함수를 작성해 주세요.


제한사항

• my_string은 알파벳 소문자로만 이루어져 있습니다.
• 1 ≤ my_string의 길이 ≤ 100


입출력 예

my_strings result
“banana” [“a”, “ana”, “anana”, “banana”, “na”, “nana”]
“programmers” [“ammers”, “ers”, “grammers”, “mers”, “mmers”, “ogrammers”, “programmers”, “rammers”, “rogrammers”, “rs”, “s”]


풀이

접미사를 추출하여 sort함수로 정렬하는 로직을 구현하여 문제를 풀 수 있었습니다.

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

using namespace std;

vector<string> solution(string my_string) {
    vector<string> answer;
    string tmp = my_string;
    
    for(int i = 0; i < my_string.length(); i++)
    {
        answer.push_back(tmp);
        tmp.erase(tmp.begin());
    }
    
    sort(answer.begin(), answer.end());
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment