MODE::CREATIVE

[백준][c++] 11478번: 서로 다른 부분 문자열의 개수 본문

BOJ

[백준][c++] 11478번: 서로 다른 부분 문자열의 개수

LEE MINGYU 2024. 9. 14. 15:40

11478번: 서로 다른 부분 문자열의 개수 (acmicpc.net)

문제 해석

  • set을 이용한 서로다른 부분 문자열 개수 세기

알고리즘 분류

  • 자료구조
  • 문자열

풀이

  • set의 개념을 이용하여 unique한 문자열의 개수 세기

코드

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

static set<string> words;
static string str;

void find_words(int sub_len) {
  for(int i = 0; i <= str.length() - sub_len; i++) {
    words.insert(str.substr(i, sub_len));
  }
}

int main() { 
  cin >> str; 
  int len = str.length(); // 문자열 길이

  for(int i = 1; i <= len; i++) {
    find_words(i);
  }
  cout << words.size();
}