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