Question
[JS-์๋ฐ์คํฌ๋ฆฝํธ] ๋ฐฑ์ค 11478๋ฒ : ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ฐ์
๋ฌธ์์ด 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์ ์๋ก ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ์์
ababc
์ถ๋ ฅ์์
12
My Code
const input = require("fs").readFileSync("dev/stdin").toString().trim().split(/\s/);
const s = input[0];
let str = new Set();
for (let i = 0; i < s.length; i++) {
for (let j = i; j < s.length; j++) {
str.add(s.substring(i, j + 1))
}
}
console.log(str.size);
๋ง์์ต๋๋ค!!
HOW? (ํ์ด๋ฐฉ๋ฒ)
- ๋น set ์๋ฃํ์ ์ ์ธํ๋ค. (set ์๋ฃํ์ ์ฌ์ฉํ๋ ์ด์ ๋ ์ค๋ณต๋๋ ๋ฌธ์์ด์ ๊ฑธ๋ฌ๋ด๊ธฐ ์ํด์)
- ๋ฌธ์์ด๋ก ๋ง๋ค ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ for ์ค์ฒฉ ๋ฌธ์ ํตํด ๋ง๋ค์ด๋ธ๋ค(์์ ํ์)
- ๋ง๋ค์ด์ง ๋ฌธ์์ด์ set ์๋ฃํ์ ์ถ๊ฐํ๋ค. ์ค๋ณต๋๋ ๋ฌธ์์ด์ ์ถ๊ฐ๋์ง ์๋๋ค.
- set์ size๋ฅผ ์ถ๋ ฅํ๋ค.
์ด๋ป๊ฒ ํ์ด์ผ ํ๋.
ํ์คํ ๊ฑฐ๋ ์ด๊ฒ๋ ๋ฐฐ์ด์ ์ด์ฉํ๋ฉด ์ ๋๊ฒ ๋ค ์๋ค.
์ฒ์์๋ map์ผ๋ก ๋ง๋ค์ด์ ์ค๋ณต์ ๊ฑธ๋ฌ์ผ๊ฒ ๋ค ์๊ฐํ๋ค๊ฐ
์ค๋ณต์ ํ์ฉํ์ง ์๋ ์๋ฃํ์ธ set์ ์ด์ฉํ๋ค!
๊ฒ๋ณด๋ค for ์ค์ฒฉ ๋ฌธ ์ด์ฉํ๋ ๊ฑด ๊ตฌ๊ธ๋ง์ ํตํด ์์๋๋ค.
๋ง์ ํ์ด๋ด๋ ์ ์ฉ์ ์ธ์ ํด์ผ ํ๋ ์ด๋ ๊ฒ ๊น๋จน๋๋ค!!!
์ต์ํด์ง ๋๊น์ง ๋ณด์....
ํน์๋ ๋ธ๋ฃจํธ ํฌ์ค(์์ ํ์)๊ณผ set์๋ฃํ์ด ๋ญ์ง ๊ถ๊ธํ์๋ค๋ฉด ์๋ํฌ์คํ ์ ๋๋ ๊ฐ์ด ํ์ธํฉ์๋ค.
[Algorithms/Algorithms] - [์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ] ์์ ํ์ (๋ธ๋ฃจํธ ํฌ์ค Brute Force)
[Front-End/JavaScript] - [์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ] ์๋ฐ์คํฌ๋ฆฝํธ ์๋ฃํ Set ๊ฐ๋ ์ ๋ฆฌ
'Algorithms > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ๋ฐฑ์ค 10816๋ฒ : ์ซ์ ์นด๋ 2 (0) | 2022.06.12 |
---|---|
[JS] ๋ฐฑ์ค 7568๋ฒ : ๋ฉ์น (0) | 2022.06.08 |
[JS] ๋ฐฑ์ค 10815๋ฒ : ์ซ์ ์นด๋ (0) | 2022.06.05 |
[JS] ๋ฐฑ์ค 10841๋ฒ : ๋์ด์ ์ ๋ ฌ (0) | 2022.05.28 |
[JS] ๋ฐฑ์ค 1931 ๋ฒ : ํ์์ค ๋ฐฐ์ (feat.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.05.24 |