Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions number-of-1-bits/robinyoon-dev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* @param {number} n
* @return {number}
*/
var hammingWeight = function (n) {
let count = 0;
let tempN = n;
while (tempN != 0) {
if (tempN & 1) {
// 비트 마스크(& 1): 앞의 비트들은 모두 0으로 무시하고, 맨 끝자리 비트만 추출하여 검사.
count++;
}
tempN = tempN >>> 1;
// >>: 부호 유지 우측 이동
// >>>: 부호 상관없이 0으로 채우는 우측 이동
}

return count;
};
52 changes: 52 additions & 0 deletions valid-palindrome/robinyoon-dev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function (s) {

//NOTE: 다음에는 투 포인터 방식으로 불어보겠습니다...

//0. 엣지케이스 대비: 빈칸인 경우.
if (s.trim() === '') {
return true;
}

//1. s를 array로 변환
const sArray = Array.from(s);

// 알파벳만 남기는 작업
// (Alphanumeric characters include letters and numbers.)
const aAscii = 'a'.charCodeAt(0);
const zAscii = 'z'.charCodeAt(0);
const aUpperAscii = 'A'.charCodeAt(0);
const zUpperAscii = 'Z'.charCodeAt(0);
const zeroAscii = '0'.charCodeAt(0);
const nineAscii = '9'.charCodeAt(0);

const filteredArray = [];
for (let char of sArray) {
let charAscii = char.charCodeAt(0);

let isCharacter = (charAscii >= aAscii && charAscii <= zAscii) || (charAscii >= aUpperAscii && charAscii <= zUpperAscii) || (charAscii >= zeroAscii && charAscii <= nineAscii);

if (isCharacter) {
filteredArray.push(char);
}
}

// 대문자 -> 소문자로 변경하는 작업
const lowerArray = [];
for (let char of filteredArray) {
lowerArray.push(char.toLowerCase());
}

// reverse 해도 똑같은지 확인하는 작업
const reversedArray = [...lowerArray].reverse();

const originalString = lowerArray.join();
const reversedString = reversedArray.join();

return originalString === reversedString;

};

Loading