Skip to content

Commit 7b0c6f8

Browse files
authored
Merge pull request #1298 from seungseung88/main
[seungseung88] Week 03 solutions
2 parents 53437d6 + 3fc20a0 commit 7b0c6f8

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

โ€Žnumber-of-1-bits/seungseung88.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(log n)
3+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
4+
*/
5+
//
6+
var hammingWeight = function (n) {
7+
let count = 0;
8+
9+
while (n > 0) {
10+
if (n % 2) count += 1;
11+
12+
// Math.floor๋ž‘ ๊ฐ™์€ ์—ญํ• 
13+
n = ~~(n / 2);
14+
}
15+
16+
return count;
17+
};
18+
19+
// ๋น„ํŠธ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
20+
var hammingWeight = function (n) {
21+
let count = 0;
22+
while (num > 0) {
23+
if (n & 1) count += 1;
24+
n >>>= 1;
25+
}
26+
27+
return countOne;
28+
};

โ€Žvalid-palindrome/seungseung88.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/**
2+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
3+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
4+
*/
5+
// var isPalindrome = function (s) {
6+
// // ์ˆซ์ž์™€ ๋ฌธ์ž๋งŒ ์ถ”์ถœํ•˜๋Š” ์ •๊ทœ์‹
7+
// const REGEX = /[0-9a-zA-Z]/g;
8+
9+
// const wordArr = s.match(REGEX);
10+
11+
// // ๋ฌธ์ž๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด true๋ฐ˜ํ™˜
12+
// if (!wordArr) return true;
13+
14+
// let l = 0;
15+
// let r = wordArr.length - 1;
16+
17+
// while (l < r) {
18+
// if (wordArr[l].toLocaleLowerCase() !== wordArr[r].toLocaleLowerCase()) return false;
19+
// console.log(l, r);
20+
// l += 1;
21+
// r -= 1;
22+
// }
23+
24+
// return true;
25+
// };
26+
27+
/**
28+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
29+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: 1
30+
*/
31+
var isPalindrome = function (s) {
32+
// ์ˆซ์ž์™€ ๋ฌธ์ž๋งŒ ์ถ”์ถœํ•˜๋Š” ์ •๊ทœ์‹
33+
const isAlnum = (char) =>
34+
(char >= 'a' && char <= 'z') || (char >= 'A' && char <= 'Z') || (char >= '0' && char <= '9');
35+
36+
let l = 0;
37+
let r = s.length - 1;
38+
39+
while (l < r) {
40+
console.log(l, r);
41+
if (!isalnum.test(s[l])) {
42+
l += 1;
43+
continue;
44+
}
45+
if (!isalnum.test(s[r])) {
46+
r -= 1;
47+
continue;
48+
}
49+
if (s[l].toLowerCase() !== s[r].toLowerCase()) {
50+
return false;
51+
}
52+
l += 1;
53+
r -= 1;
54+
}
55+
56+
return true;
57+
};
58+
59+
const s = 'A man, a plan, a canal: Panama';
60+
61+
console.log(isPalindrome(s));

0 commit comments

Comments
ย (0)