[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;
}
결과
Leave a comment