To Be Developer

[LeetCode] 476. Number Complement 본문

알고리즘/LeetCode

[LeetCode] 476. Number Complement

Jeff Hwang 2019. 3. 25. 03:51
class Solution(object):
    def findComplement(self, num):

        # 2진수를 2^0 ~ 2^n 까지 저장할 배열 변수
        bi = []

        # num 이 0 이 될때까지 반복을 돌림
        while num!=0:
            # 2로 나눈 나머지를 bi에 append
            bi.append(num%2)
            # 계산하였으므로 num 을 2로 나눔
            num = num//2
        
        # return 할 값
        answer = 0

        # bi를 0 제곱부터 N제곱까지 배치하였으므로
        # enumerate 함수를 사용하여 index를 그대로 사용하면 된다.
        for i, v in enumerate(bi):
            # v 값이 0이면 2^i 를 answer에 더한다
            if v == 0:
                answer += 2**i
        
        # return answer
        return answer

if __name__ == "__main__":
    sl = Solution().findComplement(5)
    print(sl)

https://leetcode.com/problems/number-complement/