Skip to content

Commit ab0e555

Browse files
committed
add solution : 338. Counting Bits
1 parent 026e627 commit ab0e555

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

โ€Žcounting-bits/mmyeon.tsโ€Ž

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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+
}

0 commit comments

Comments
ย (0)