File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ๋ฌธ์ ์ค๋ช
3
+ * - ์ฃผ์ด์ง ๋ฌธ์์ด s์ ๋ชจ๋ ๋ถ๋ถ ๋ฌธ์์ด ์ค ํฐ๋ฆฐ๋๋กฌ์ธ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ๋ฐํ
4
+ *
5
+ * ์์ด๋์ด
6
+ * 1) 1. Brute Force O(n^3)
7
+ * 2) ํฌํฌ์ธํฐ O(n^2)
8
+ * - ์ง์, ํ์ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋์ด ํ์
9
+ * - ์ํํ๋ฉด์ ๊ฐ ํญ๋ชฉ์ ์ค์ฌ์ผ๋ก ์ข์ฐ๋ก ํ์ฅํ๋ฉฐ ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ์ธ
10
+ * 3) DP O(n^2)
11
+ * - dp[i][j]๋ฅผ ๋ง๋ค์ด์ s[i..j]๊ฐ ํฐ๋ฆฐ๋๋กฌ์ธ์ง ์ ์ฅ -> ๋ค์๋ฒ์ ํด๋ณด๊ธฐ
12
+ */
13
+ function countSubstrings ( s : string ) : number {
14
+ let result = 0 ;
15
+
16
+ for ( let i = 0 ; i < s . length ; i ++ ) {
17
+ let left = i ;
18
+ let right = i ;
19
+
20
+ while ( left >= 0 && right < s . length && s [ left ] === s [ right ] ) {
21
+ result ++ ;
22
+ left -- ;
23
+ right ++ ;
24
+ }
25
+
26
+ left = i ;
27
+ right = i + 1 ;
28
+ while ( left >= 0 && right < s . length && s [ left ] === s [ right ] ) {
29
+ result ++ ;
30
+ left -- ;
31
+ right ++ ;
32
+ }
33
+ }
34
+ return result ;
35
+ }
You canโt perform that action at this time.
0 commit comments