본문 바로가기

두두의 알고리즘/문제

[비트연산] 릿코드 Easy 190 'Reverse Bits' (Python)

728x90

<문제 링크>

https://leetcode.com/problems/reverse-bits/

 

Reverse Bits - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


<문제 풀이>

  1. n은 정수형으로 들어오기 때문에 binary로 바꿔줌. 
  2. binary로 바꾸면 맨 앞에 0b가 붙으므로 제거해줌
  3. 2진수는 32bit의 길이를 유지해야하므로 zfill함수를 이용해 맨 앞에 0을 붙여줌
  4. 1을 가진 자리는 2의 지수만큼 곱해줌

<코드>

class Solution:
    def reverseBits(self, n: int) -> int:
        
        a = str(bin(n)).replace('0b','').zfill(32)
        answer = 0
        for idx, i in enumerate(a):
            if i!='0':
                answer += 2**idx
        
        return answer