https://www.acmicpc.net/problem/11478
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
Disjoint한 subset의 개수를 찾는 문제.
정말 단순하게 subStr을 이용해서 vector로 중복제거를 해주었다.
#include <iostream>
#include <vector>
#include <algorithm>>
using namespace std;
int main(){
string str;
vector<string> subStrVec;
cin >> str;
for(int i=1; i<= str.size(); i++){
for(int j=0; j <= str.size() - i; j++){
subStrVec.push_back(str.substr(j,i));
}
}
sort(subStrVec.begin(), subStrVec.end());
subStrVec.erase(unique(subStrVec.begin(), subStrVec.end()), subStrVec.end());
cout << subStrVec.size();
}
그닥 효율적이지는 않은 코드,,,
| < 백준 BaekJoon : 1735번 분수 합> C++ (0) | 2024.01.10 |
|---|---|
| < 백준 BaekJoon : 1934번 최소공배수 > C++ (0) | 2023.10.16 |
| < 백준 BaekJoon : 7785번 회사에 있는사람> C++ (0) | 2023.08.04 |
| < 백준 BaekJoon : 19532번 수학은 비대면강의입니다.> C++ (0) | 2023.08.04 |
| < 백준 BaekJoon : 9506번 약수들의 합> C++ (0) | 2023.08.03 |
댓글 영역