서로 다른 부분 문자열의 개수
0번 인덱스부터 1개, 2개,...,n개
1번 인덱스부터 1개, 2개,...,n-1개
..
n번 인덱스부터 1개
형태로 루프를 구성하여 문자열을 슬라이싱 해준 뒤 set 집합에 넣어 중복 원소를 제거해주었다.
슬라이싱을 위한 메소드로는 str.substr(시작 인덱스,개수); 를 입력해주면 된다
#include<iostream>
#include<set>
#include<string>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
set<string>set_str;
string str;
cin >> str;
for (int i = 0;i<str.size();i++) {
for (int j = 0;j <str.size();j++) {
set_str.insert(str.substr(i,j+1));
}
}
cout << set_str.size();
return 0;
}