File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ *
3
+ * ์ ๊ทผ ๋ฐฉ๋ฒ :
4
+ * - 2์ง์ ์ฌ์ด์ 1์ ๊ฐ์๊ฐ ์ด์ ๊ฐ์ ๊ฒฐ๊ณผ์ ์์กดํ๋ ๊ท์น์ด ์์ด์ dp๋ก ์งํ
5
+ * - 2๋ก ๋๋ ์ ์ง์์ธ์ง ํ์์ธ์ง ํ๋ณ
6
+ * - ์ง์์ธ ๊ฒฝ์ฐ, 2๋ก ๋๋ ๋ชซ์ ๊ฐ(์ด์ ๊ฐ)์ ์ฌํ์ฉํ๊ณ , ํ์์ธ ๊ฒฝ์ฐ ๋ด๋ฆผ์ฒ๋ฆฌ ํด์ ์ด์ ๊ฐ์ 1 ๋ํด์ฃผ๊ธฐ
7
+ *
8
+ *
9
+ * ์๊ฐ๋ณต์ก๋ :
10
+ * - ์ซ์ ๊ธธ์ด๋งํผ ์ํํ๋ for๋ฌธ - O(n)
11
+ *
12
+ * ๊ณต๊ฐ๋ณต์ก๋ :
13
+ * - ์ซ์ ๊ธธ์ด์ ๋์ผํ ๊ธธ์ด์ ๋ฐฐ์ด ์ ์ฅํ๋ฏ๋ก O(n)
14
+ *
15
+ *
16
+ */
17
+ function countBits ( n : number ) : number [ ] {
18
+ if ( n === 0 ) return [ 0 ] ;
19
+
20
+ let answer = [ 0 , 1 ] ;
21
+
22
+ for ( let i = 2 ; i <= n ; i ++ ) {
23
+ // ์ง์์ธ์ง ํ์์ธ์ง ์ฒดํฌ
24
+ if ( i % 2 === 0 ) {
25
+ answer [ i ] = answer [ i / 2 ] ;
26
+ } else {
27
+ answer [ i ] = answer [ Math . floor ( i / 2 ) ] + 1 ;
28
+ }
29
+ }
30
+ return answer ;
31
+ }
You canโt perform that action at this time.
0 commit comments