File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change
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
+
You canβt perform that action at this time.
0 commit comments