[백준] 11478. 서로 다른 부분 문자열의 개수 (C++)

Algorithm|2022. 1. 17. 20:04
반응형
 

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

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.

www.acmicpc.net

 

O(n³) 인 방법으로 만들 수 있긴한데, <set>을 사용하는 게 아무래도 편할 것 같아서 set을 사용해서 풀었다.

 

int main(void) 
{
  set<string> a;
  string s;

  cin >> s;

  for(int i=0 ; i<s.size(); i++)
  { // window 크기 별로 입력 ex) 4글자면 1~4글자
    for(int k=0; k<s.size()-i; k++) 
    { // window slice
      a.insert( s.substr(k,i+1));
      // set 삽입
    }
      
  }

  cout << a.size();

  return 0;
}
반응형

댓글()