Skip to content

Commit 194eb6c

Browse files
committed
palindromic-substrings solution
1 parent de2da78 commit 194eb6c

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* @param {string} s
3+
* @return {number}
4+
*
5+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(n^2)
6+
* - ๊ฐ ๋ฌธ์ž(i)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ™•์žฅ โ†’ ์ตœ๋Œ€ n๋ฒˆ
7+
* - ๊ฐ ์ค‘์‹ฌ์—์„œ ์–‘์ชฝ์œผ๋กœ ํ™•์žฅํ•˜๋ฉด์„œ ๋น„๊ต โ†’ ์ตœ๋Œ€ n๋ฒˆ
8+
* โ†’ O(n) * O(n) = O(n^2)
9+
*
10+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(1)
11+
* - ์ถ”๊ฐ€ ๊ณต๊ฐ„ ์—†์ด count ๋ณ€์ˆ˜์™€ index๋งŒ ์‚ฌ์šฉ
12+
* - ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ํ•˜์ง€ ์•Š์Œ
13+
*/
14+
var countSubstrings = function(s) {
15+
let count = 0;
16+
17+
// ์ „์ฒด ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์œ„์น˜๋ฅผ ํŒฐ๋ฆฐ๋“œ๋กฌ ์ค‘์‹ฌ์œผ๋กœ ์žก์Œ
18+
for (let i = 0; i < s.length; i++) {
19+
// ํ™€์ˆ˜ ๊ธธ์ด ํŒฐ๋ฆฐ๋“œ๋กฌ: ex. "aba"
20+
helper(i, i);
21+
22+
// ์ง์ˆ˜ ๊ธธ์ด ํŒฐ๋ฆฐ๋“œ๋กฌ: ex. "abba"
23+
helper(i, i + 1);
24+
}
25+
26+
// ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ์œ ์ง€๋˜๋Š” ๋™์•ˆ count ์ฆ๊ฐ€์‹œํ‚ค๋Š” ํ•จ์ˆ˜
27+
function helper(left, right) {
28+
// ์กฐ๊ฑด์ด ๋งž์„ ๋•Œ๋งˆ๋‹ค ์ขŒ์šฐ๋กœ ํ™•์žฅ
29+
while (left >= 0 && right < s.length && s[left] === s[right]) {
30+
count++; // ์œ ํšจํ•œ ํŒฐ๋ฆฐ๋“œ๋กฌ ํ•˜๋‚˜ ๋ฐœ๊ฒฌ
31+
left--;
32+
right++;
33+
}
34+
}
35+
36+
return count;
37+
};

0 commit comments

Comments
ย (0)