Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions reverse-bits/reeseo3o.js
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🏷️ 알고리즘 패턴 분석

  • 패턴: Bit Manipulation
  • 설명: 이 코드는 비트 연산자를 활용하여 비트의 순서를 뒤집는 작업을 수행하므로 비트 조작 패턴에 속합니다. 비트 단위로 데이터를 처리하는 대표적인 방법입니다.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// 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;
};
Loading