Skip to content

Commit a49cb9c

Browse files
author
แ„‹แ…ตแ„‹แ…งแ†ซแ„‰แ…ฎ
committed
number of 1 bits
1 parent 2496829 commit a49cb9c

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package leetcode_study
2+
3+
//
4+
/*
5+
* ์ฃผ์–ด์ง„ ์–‘์˜ ์ •์ˆ˜(n)๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ, 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ (1 <= n <= 2^31 -1. ์ฆ‰, ์–‘์˜ ์ •์ˆ˜)
6+
* _> ์ˆซ์ž๊ฐ€ Decimal๋กœ ์ฃผ์–ด์ง€๋”๋ผ๋„ bit ์—ฐ์‚ฐ์—์„œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ binary ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
7+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(1)
8+
* -> masking ์—ฐ์‚ฐ์€ ํ•ญ์ƒ 32๋ฒˆ ๊ณ ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„
9+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
10+
* -> ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์—†์ด ๋‘ ๊ฐœ์˜ ๋ณ€์ˆ˜ count, mask๋งŒ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์ˆ˜ ๊ณต๊ฐ„ ๋ณต์žก๋„
11+
* */
12+
fun hammingWeight(n: Int): Int {
13+
var count = 0
14+
var mask = 1 shl 31
15+
while (mask != 0) {
16+
if (n and mask != 0) {
17+
count++
18+
}
19+
mask = mask ushr 1
20+
}
21+
return count
22+
}

0 commit comments

Comments
ย (0)