diff --git a/HamSungJun/Solution_1047.ts b/HamSungJun/Solution_1047.ts new file mode 100644 index 0000000..4ff4204 --- /dev/null +++ b/HamSungJun/Solution_1047.ts @@ -0,0 +1,14 @@ +function removeDuplicates (s: string): string { + const letterStack: string[] = [] + for (let i = 0; i < s.length; i++) { + const letter = s[i] + if (letter === letterStack[letterStack.length - 1]) { + letterStack.pop() + continue + } + letterStack.push(letter) + } + return letterStack.join('') +}; + +console.log(removeDuplicates('caabbdaabbz')) diff --git a/HamSungJun/Solution_1356.ts b/HamSungJun/Solution_1356.ts new file mode 100644 index 0000000..83353b8 --- /dev/null +++ b/HamSungJun/Solution_1356.ts @@ -0,0 +1,16 @@ +function sortByBits (arr: number[]): number[] { + const numBitsArr = arr.map(num => { + return { + num, + numBits: num.toString(2).split('').filter(bit => bit === '1').length + } + }) + numBitsArr.sort((a, b) => { + if (a.numBits !== b.numBits) { + return Number(a.numBits > b.numBits) - Number(a.numBits < b.numBits) + } else { + return Number(a.num > b.num) - Number(a.num < b.num) + } + }) + return numBitsArr.map(item => item.num) +}; diff --git a/HamSungJun/Solution_1880.ts b/HamSungJun/Solution_1880.ts new file mode 100644 index 0000000..5de5f0c --- /dev/null +++ b/HamSungJun/Solution_1880.ts @@ -0,0 +1,15 @@ +function isSumEqual (firstWord: string, secondWord: string, targetWord: string): boolean { + return wordToNum(firstWord) + wordToNum(secondWord) === wordToNum(targetWord) +}; + +function wordToNum (word: string): number { + let out = '' + for (let i = 0; i < word.length; i++) { + const nextDigit = word[i].charCodeAt(0) - 97 + if (out.length === 0 && nextDigit === 0) { + continue + } + out += nextDigit + } + return +out +}