Skip to content

Commit 9f9c916

Browse files
committed
Reverse Bits Solution
1 parent 8ec2f64 commit 9f9c916

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

โ€Žreverse-bits/clara-shin.jsโ€Ž

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* ๋น„ํŠธ ๋ฐ˜์ „ ๋ฌธ์ œ(32๋น„ํŠธ ๋ฌด๋ถ€ํ˜ธ ์ •์ˆ˜, 32bit unassigned integer)
3+
* ๋น„ํŠธ ๋ฐ˜์ „: 32๋น„ํŠธ ์ „์ฒด๋ฅผ ๋’ค์ง‘๋Š” ๊ฒƒ(์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ)
4+
*
5+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ•:
6+
* 32๋น„ํŠธ ์ •์ˆ˜์˜ ๊ฐ ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ํ™•์ธ
7+
* ๊ฐ ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ˜๋Œ€๋กœ ์œ„์น˜์‹œํ‚ด
8+
* ๊ฐ ์œ„์น˜์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ’์— ๋”ํ•จ
9+
*
10+
* ์‹œ๊ฐ„๋ณต์žก๋„: O(1)
11+
* ๊ณต๊ฐ„๋ณต์žก๋„: O(1)
12+
*/
13+
/**
14+
* @param {number} n - a positive integer
15+
* @return {number} - a positive integer
16+
*/
17+
var reverseBits = function (n) {
18+
let result = 0;
19+
20+
for (let i = 0; i < 32; i++) {
21+
// ๊ฒฐ๊ณผ์— ํ˜„์žฌ ๋น„ํŠธ๋ฅผ ์ถ”๊ฐ€ (๋น„ํŠธ OR ์—ฐ์‚ฐ)
22+
// ๊ฒฐ๊ณผ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ์‹œํ”„ํŠธํ•œ ํ›„, n์˜ ์ตœํ•˜์œ„ ๋น„ํŠธ๊ฐ€ 1์ด๋ฉด ๊ฒฐ๊ณผ์— 1์„ ๋”ํ•จ
23+
result = (result << 1) | (n & 1);
24+
25+
// n์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์‹œํ”„ํŠธ
26+
n >>>= 1;
27+
}
28+
29+
// ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜๋กœ ๋ณ€ํ™˜
30+
return result >>> 0;
31+
};

0 commit comments

Comments
ย (0)