-
Notifications
You must be signed in to change notification settings - Fork 125
/
Copy pathYjason-K.ts
22 lines (22 loc) ยท 987 Bytes
/
Yjason-K.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* ์ฃผ์ด์ง ์ ์๋ฅผ 32๋นํธ๋ก ๋ณํํ๊ณ ๋ฐ์ ์์ผ ๊ทธ๋์ ์ ์๋ฅผ ๋ฐํํ๋ ๋ฌธ์ .
*
* @param {number} n - ์ ์ (32๋นํธ))
* @returns {number} - 2์ง์ ๋ณํ ๋ฐ ๋ฐ์ ํ์ฌ ์ ์ ๋ณํ.
*
* ๋ด์ฅ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ 32๋นํธ 2์ง์ ๋ณํ ํ, reverseํ์ฌ ๋ค์ ์ ์๋ก ๋ณํ.
*
* ์๊ฐ ๋ณต์ก๋: O(32)
* - 32๋นํธ ์ ์์ ๋นํธ๋ฅผ ์ฒ๋ฆฌํ๋ฏ๋ก ๊ณ ์ ๋ ์์ ์๊ฐ.
*
* ๊ณต๊ฐ ๋ณต์ก๋: O(32)
* - 2์ง์ ๋ฌธ์์ด์ ์์ฑํ๊ณ ๋ฐ์ ๋ ๋ฌธ์์ด์ ์ ์ฅํ๋ฏ๋ก ๊ณ ์ ๋ ํฌ๊ธฐ์ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์.
*/
function reverseBits(n: number): number {
// ์ซ์๋ฅผ 32๋นํธ 2์ง์ ๋ฌธ์์ด๋ก ๋ณํ (์์ 0 ์ฑ์ฐ๊ธฐ)
const binaryStr = n.toString(2).padStart(32, '0');
// 2์ง์ ๋ฌธ์์ด์ ๋ค์ง๊ธฐ
const reversedBinaryStr = binaryStr.split('').reverse().join('');
// ๋ค์งํ 2์ง์ ๋ฌธ์์ด์ ๋ค์ ์ซ์๋ก ๋ณํ
return parseInt(reversedBinaryStr, 2);
};