๋ฌธ์
๋ฌธ์์ด 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์ ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
"์๋ก ๋ค๋ฅธ" ๋ถ๋ถ ๋ฌธ์์ด์ ์ฐพ๋ ๋ฌธ์ ๋ก, set์ ์ฐ๋ฉด ๊ฐํธํ๊ฒ ํ ์ ์๋ค.
์ฒ์์๋ ๊ฐ์ ๋ณ๋ก ๊ตฌ๋ถํด์ ํ์๋๋ฐ, ์์ ์ธ๋ฑ์ค๋ก๋ ๊ตฌ๋ถํ ์ ์์ด์ ์ด๊ฑธ๋ก ํ์๋ค. ์ ์๋ณด๋ค ์กฐ๊ธ ๋ ๊ฐ๋จํ ๊ฒ ๊ฐ๋ค.
#include <iostream>
#include <set>
using namespace std;
int main() {
string s;
cin >> s;
set<string> subStr;
/* 1) [0] [1] [2] [3] [4]
* 2) [0-1] [1-2] [2-3] [3-4]
* 3) [0-1-2] [1-2-3] [2-3-4]
* 4) [0-1-2-3] [1-2-3-4]
* 5) [0-1-2-3-4]
* => 0์ผ๋ก ์์ํ๋ ๊ฒ / 1๋ก ์์ํ๋ ๊ฒ / 2๋ก ์์ํ๋ ๊ฒ / ...
*/
for (int i=0; i<s.length(); i++){
string tmp = "";
for (int j=i; j<s.length(); j++){
tmp += s[j];
subStr.insert(tmp);
}
}
cout << subStr.size();
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 20291๋ฒ: ํ์ผ ์ ๋ฆฌ (0) | 2022.07.17 |
---|---|
[๋ฐฑ์ค/C++] 19583๋ฒ: ์ธ์ด๋ฒ๊ฐ๊ฐ์ดํ (0) | 2022.07.17 |
[๋ฐฑ์ค/C++] 2776๋ฒ: ์๊ธฐ์ (0) | 2022.07.17 |
[๋ฐฑ์ค/C++] 9375๋ฒ: ํจ์ ์ ์ ํด๋น (0) | 2022.07.10 |
[๋ฐฑ์ค/C++] 1764๋ฒ: ๋ฃ๋ณด์ก (0) | 2022.07.10 |
๋๊ธ