๐Ÿ’  Cpp/[BOJ] ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ

[BOJ][C++] ๋ฐฑ์ค€ 11478๋ฒˆ: ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ (Silver III)

์„ ๋‹ฌ 2025. 1. 9. 13:45
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, S์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ S์—์„œ ์—ฐ์†๋œ ์ผ๋ถ€๋ถ„์„ ๋งํ•˜๋ฉฐ, ๊ธธ์ด๊ฐ€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ababc์˜ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ a, b, a, b, c, ab, ba, ab, bc, aba, bab, abc, abab, babc, ababc๊ฐ€ ์žˆ๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ๊ฒƒ์˜ ๊ฐœ์ˆ˜๋Š” 12๊ฐœ์ด๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. S๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๋Š” 1,000 ์ดํ•˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— S์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

// ํ’€์ด : https://whkakrkr.tistory.com

#include <iostream>
#include <vector>
#include <set>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);
	
	string s;
	cin >> s;
	int n = s.size();
	
	set<string>ss;
	for(int i=0; i<n; i++) {
	    for(int j=i; j<n; j++) {
	        string sub = s.substr(i, j-i+1);
	        ss.insert(sub);
	    }
	}
	
	cout << ss.size();
    
    return 0;
}
๋ฐ˜์‘ํ˜•