본문 바로가기

algorithm

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

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

 

아이디어:

1. set에 insert해서 중복 제거

2. string의 substr(n, k) 함수: n부터 k개의 부분 문자열 반환

3. for문 반복 조건을 적절하게 사용

 

// 11478

#include <iostream>
#include <string>
#include <set>

using namespace std;

int main() {

	string S;
	string tmp;
	set<string> A;

	cin >> S;

	for (int i = 0; i < S.size(); i++) {
		for (int j = 0; i + j <= S.size(); j++) {
			tmp = S.substr(j, i);
			A.insert(tmp);
		}
	}

	cout << A.size();

	return 0;
}

 

'algorithm' 카테고리의 다른 글

백준 13241번 최소공배수  (0) 2024.10.20
백준 1934번 최소공배수  (1) 2024.10.20
백준 1269번 대칭 차집합  (2) 2024.10.13
백준 1764번 듣보잡  (3) 2024.10.13
백준 10816번 숫자 카드 2  (1) 2024.10.13