문제 풀이/BOJ 문제 풀이

[BOJ알고리즘, C++]#11478_서로 다른 부분 문자열, Set

Hardii2 2022. 12. 4. 20:35

 

 

[BOJ 알고리즘, C++] #11478_서로 다른 부분 문자열, Set

 

BOJ 알고리즘 문제 풀이, 11478_서로 다른 부분 문자열 문제

Map 컨테이너를 활용하여 문자열이 갖는 총 부분 문자열을 계산합니다.

 


 

문제

 

풀이
  1. Set 컨테이너를 사용하면 아주 간단하게 풀 수 있는 문제입니다.
  2. Set 컨테이너의 특징을 간략하게 설명하자면, 중복이 없는 "Key" 값을 원소로 갖는 자료구조입니다.
  3. Map과 달리 Set은 Key 값이 곧 Value이며, 간단하게 풀이하면, 중복 없는 항목들을 갖는 컨테이너로 볼  수 있습니다.

 

코드
#include <iostream>
#include <string>
#include <set>
using namespace std;

// Set 사용

int main()
{   
    string str;
    set<string> s;

    cin >> str;

    string tmp;
    for(int i=0; i<str.size(); i++)
    {
        for(int j=i; j<str.size(); j++)
        {
            tmp += str[j];
            s.insert(tmp);
        }
        tmp.clear();
    }

    cout << (int)s.size() << endl;
}