본문 바로가기

백준/C++

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

728x90

 

문제 11478번

https://www.acmicpc.net/problem/11478

 

서로 다르게 하기 위해 중복이 없는 set을 이용한다. 그리고 이중반복문으로 부분 문자열들을 set에 삽입시킨다. 안에 있는 반복문이 끝날 때마다 str변수는 초기화해주어 다음 부분 문자열들을 구해준다. 그렇게 삽입을 다 완료한 set의 크기를 출력한다.

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

int main() {
	string s;
	set <string> st;
	cin >> s;

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

	cout << st.size();

	return 0;
}

 

 

728x90