백준 문풀

백준 11478

조강학 2024. 5. 6. 23:43

서로 다른 부분 문자열의 개수

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;
}

'백준 문풀' 카테고리의 다른 글

백준 2840  (0) 2024.05.08
백준 1764  (0) 2024.05.06
백준 11279  (0) 2024.05.06
백준 7785  (0) 2024.05.06
백준 5555  (1) 2024.03.15