Skip to content

Commit 949845f

Browse files
committed
add: solve DaleStudy#232 Number of 1 Bits with ts
1 parent d1c56fc commit 949845f

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

β€Žnumber-of-1-bits/Yjason-K.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* μ£Όμ–΄μ§„ 숫자 `n`의 2μ§„μˆ˜ ν‘œν˜„μ—μ„œ 1의 개수λ₯Ό 계산.
3+
*
4+
* @param {number} n - 1의 개수λ₯Ό 계산할 숫자 (μ–‘μ˜ μ •μˆ˜)
5+
* @returns {number} - 2μ§„μˆ˜μ—μ„œ 1의 개수
6+
*
7+
* μ‹œκ°„ λ³΅μž‘λ„: O(k)
8+
* - `k`λŠ” 숫자 `n`의 2μ§„μˆ˜ ν‘œν˜„ 길이 (log2(n))
9+
* - `toString(2)` μ—°μ‚°κ³Ό λ°°μ—΄ 순회λ₯Ό 포함.
10+
*
11+
* 곡간 λ³΅μž‘λ„: O(k)
12+
* - 2μ§„μˆ˜ λ¬Έμžμ—΄κ³Ό λ¬Έμžμ—΄ 배열을 μ €μž₯ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λ©”λͺ¨λ¦¬ 포함.
13+
*/
14+
function hammingWeight(n: number): number {
15+
// 1. μž…λ ₯ 숫자 `n`을 2μ§„μˆ˜ λ¬Έμžμ—΄λ‘œ λ³€ν™˜
16+
// 2. 2μ§„μˆ˜ λ¬Έμžμ—΄μ„ κ°œλ³„ 문자둜 λ‚˜λˆ„μ–΄ λ°°μ—΄λ‘œ λ³€ν™˜
17+
// 3. λ°°μ—΄μ—μ„œ 1의 개수λ₯Ό λˆ„μ ν•˜μ—¬ ν•©μ‚°
18+
return n.toString(2).split('').reduce((a, b) => a + Number(b), 0);
19+
};
20+

0 commit comments

Comments
Β (0)