File tree 1 file changed +25
-0
lines changed 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * κ° μμ λΉνΈμ κ°μλ₯Ό κ³μ°νλ ν¨μ
3
+ * @param {number } nums - μ΅λ μ
4
+ * @returns {number[] } - κ° μμ λΉνΈμ κ°μ λ°°μ΄
5
+ *
6
+ * μκ° λ³΅μ‘λ: O(n)
7
+ * - nums λ§νΌ λ°λ³΅νλ©°, κ° μμ λΉνΈμ κ°μλ₯Ό κ³μ°
8
+ *
9
+ * κ³΅κ° λ³΅μ‘λ: O(n)
10
+ * - dp λ°°μ΄μ μ¬μ©νμ¬ O(n) λ§νΌ μΆκ° 곡κ°μ΄ νμ
11
+ */
12
+ function countBits ( nums : number ) : number [ ] {
13
+ // dp λ°°μ΄μ μμ±νκ³ , λͺ¨λ 0μΌλ‘ μ΄κΈ°νν©λλ€.
14
+ const dp : number [ ] = new Array ( nums + 1 ) . fill ( 0 ) ;
15
+
16
+ // κ° μμ λν΄, λΉνΈμ κ°μλ₯Ό κ³μ°ν©λλ€.
17
+ for ( let num = 1 ; num <= nums ; num ++ ) {
18
+ // numμ 2μ§μλ‘ νννμ λ, 1μ κ°μλ 2μ§μλ‘ λ³ννμ¬ λ¬Έμμ΄λ‘ λ³ν ν,
19
+ // '1'μ΄ ν¬ν¨λ λ¬Έμμ΄μ κΈΈμ΄λ₯Ό κ³μ°ν©λλ€.
20
+ dp [ num ] = dp [ Math . floor ( num / 2 ) ] + ( num % 2 ) ;
21
+ }
22
+
23
+ return dp ;
24
+ }
25
+
You canβt perform that action at this time.
0 commit comments