Skip to content

Commit e74f321

Browse files
feat: valid-palindrome ํ’€์ด
1 parent 6bedce1 commit e74f321

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/**
2+
* @param {string} s
3+
* @return {boolean}
4+
*/
5+
6+
String.prototype.isAlphaNum = function() {
7+
return /^[a-z0-9]$/i.test(this);
8+
};
9+
var isPalindrome = function(s) {
10+
//chatAt์˜ ๋ฒ”์œ„์˜ string, number๋งŒ ๊ฑด์ง„๋‹ค
11+
const ss = s.split('').filter((x)=>x.isAlphaNum()).map(x=>x.toLowerCase())
12+
//๊ทธ ๋‹ค์Œ์—” index๋ฅผ ์–‘์ชฝ์—์„œ ๋น„๊ตํ•˜๊ธฐ
13+
for(let i=0;i<(ss.length/2);i++){
14+
console.log(ss[i],ss[ss.length-1-i])
15+
if(ss[i]!==ss[ss.length-1-i]) return false
16+
}
17+
return true
18+
};
19+
20+
// ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N)
21+
// ๊ณต๊ฐ„ ๋ณต์žก๋„ O(N)
22+
23+
//2. ํˆฌํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ, ํ•„ํ„ฐ๋ง๊ณผ string ๋ฉ”์„œ๋“œ๋ฅผ ๊ทธ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํšจ์œจ์„ฑ ์˜ฌ๋ฆฌ๊ธฐ
24+
var isPalindrome = function(s) {
25+
let left = 0;
26+
let right = s.length - 1;
27+
//๊ฐ ํฌ์ธํ„ฐ๊ฐ€ ์˜์ˆซ์ž ๋ฌธ์ž๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์ด๋™
28+
while (left < right) {
29+
while (left < right && !s[left].isAlphaNum()) {
30+
left++;
31+
}
32+
while (left < right && !s[right].isAlphaNum()) {
33+
right--;
34+
}
35+
if (left < right && s[left].toLowerCase() !== s[right].toLowerCase()) {
36+
return false;
37+
}
38+
left++;
39+
right--;
40+
}
41+
42+
return true;
43+
};
44+
45+
// ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N)
46+
// ๊ณต๊ฐ„ ๋ณต์žก๋„ O(1)
47+
48+
/*
49+
๋” ํšจ์œจ์ ์ด๊ฒŒ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•
50+
1. String.prototype ํ™•์žฅ ์ง€์–‘
51+
์„ฑ๋Šฅ์ ์ธ ์ธก๋ฉด์—์„œ String.prototype ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์ด ์ง์ ‘์ ์ธ ํ—ฌํผ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ณด๋‹ค ์•„์ฃผ ๋ฏธ์„ธํ•˜๊ฒŒ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค (์‹ค์ œ๋กœ๋Š” ๊ฑฐ์˜ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€)
52+
53+
2. isAlphaNum ๋‚ด๋ถ€ ๋กœ์ง ์ตœ์ ํ™” (Micro-optimization)
54+
- ์ •๊ทœ ํ‘œํ˜„์‹ ์—”์ง„์ด ๋‚ด๋ถ€์ ์œผ๋กœ ํŒŒ์‹ฑ๋˜๊ณ  ์ปดํŒŒ์ผ๋˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ •๊ทœ ํ‘œํ˜„์‹, ๋‹จ์ˆœํ•œ ๋ฌธ์ž ๋ฒ”์œ„ ์ฒดํฌ์—๋Š” ๋ฌธ์ž ์ฝ”๋“œ(char code) ๋น„๊ต๊ฐ€ ๋” ๋น ๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
55+
56+
*/

0 commit comments

Comments
ย (0)