[Silver / 11656] 접미사 배열
🔷 분류
정렬, 문자열
✒️ 문제 설명
접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.
baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.
문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.
⬅️ 입력
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.
➡️ 출력
첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다.
💻 코드 (C++)
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string str;
vector<string> v;
getline(cin, str);
for(int i = 0; i < str.size(); i++) {
v.push_back(str.substr(i, str.size()-i+1));
}
sort(v.begin(), v.end());
for(string s : v) cout << s << "\n";
return 0;
}
공유하기
Twitter Facebook LinkedIn글 이동
Comments