📌 LeetCode [190]: Reverse Bits
🔗 문제 링크
문제 설명 📄
32비트의 부호 없는 정수가 주어지면, 해당 정수의 비트를 뒤집은 값을 반환하세요.
문제 접근 방식
- 32비트 정수의 각 비트를 순차적으로 검사하며 뒤집는 방식으로 접근합니다.
- 주어진 정수에서 비트를 오른쪽으로 이동시키며 최하위 비트를 추출합니다.
- 추출된 비트를 결과 변수에 왼쪽으로 이동하여 반대로 삽입합니다.
- 모든 비트를 처리한 후 결과를 반환합니다.
Solution 💻
class Solution:
def reverseBits(self, n: int) -> int:
result = 0
for _ in range(32):
result = (result << 1) | (n & 1)
n >>= 1
return result
시간 복잡도 분석 ⏲️
- 시간 복잡도: O(32)
- 32비트 정수의 모든 비트를 순회하므로 32회의 연산이 필요합니다.
공간 복잡도 분석 🗄️
- 공간 복잡도: O(1)
- 추가적으로 사용하는 공간은 결과를 저장할 정수 변수 하나뿐입니다.
'알고리즘' 카테고리의 다른 글
LeetCode [962]: Maximum Width Ramp (0) | 2025.01.10 |
---|---|
LeetCode [528]: Random Pick with Weight (0) | 2025.01.09 |
LeetCode [539]: Minimum Time Difference (0) | 2025.01.07 |
LeetCode [874]: Walking Robot Simulation (0) | 2025.01.06 |
LeetCode [53]: Maximum Subarray (0) | 2025.01.05 |