From 9fea5c6c1e71e2985491846061a19950e1f65976 Mon Sep 17 00:00:00 2001 From: reeseo3o Date: Sat, 25 Apr 2026 22:30:26 +0900 Subject: [PATCH 1/2] week8: reverse-bits --- reverse-bits/reeseo3o.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 reverse-bits/reeseo3o.js diff --git a/reverse-bits/reeseo3o.js b/reverse-bits/reeseo3o.js new file mode 100644 index 000000000..a53805b6e --- /dev/null +++ b/reverse-bits/reeseo3o.js @@ -0,0 +1,22 @@ +// Time Complexity: O(1) +// Space Complexity: O(1) + +const reverseBits = (n) => { + let result = 0; + + // 32비트 고정 - 정확히 32번 + for (let i = 0; i < 32; i++) { + // 1. n의 마지막 비트만 뽑기 (0 또는 1) + const bit = n & 1; + + // 2. result를 한 칸 왼쪽으로 밀고, 거기에 bit를 붙이기 + result = (result << 1) | bit; + + // 3. n은 오른쪽으로 한 칸 밀어서 다음 비트 준비 + n >>>= 1; + } + + // 항상 32비트 unsigned로 보이게 하기 위해 마지막에 한 번 더 >>> 0 + return result >>> 0; + }; + \ No newline at end of file From f5c466cca792a375a9a7c520375059bea5195544 Mon Sep 17 00:00:00 2001 From: reeseo3o Date: Sat, 25 Apr 2026 22:32:32 +0900 Subject: [PATCH 2/2] fix: remove unnecessary newline at the end --- reverse-bits/reeseo3o.js | 1 - 1 file changed, 1 deletion(-) diff --git a/reverse-bits/reeseo3o.js b/reverse-bits/reeseo3o.js index a53805b6e..a87a04f73 100644 --- a/reverse-bits/reeseo3o.js +++ b/reverse-bits/reeseo3o.js @@ -19,4 +19,3 @@ const reverseBits = (n) => { // 항상 32비트 unsigned로 보이게 하기 위해 마지막에 한 번 더 >>> 0 return result >>> 0; }; - \ No newline at end of file