작심삼일

[LeetCode] 1009 | Complement of Base 10 Integer | Python 본문

스터디/코테

[LeetCode] 1009 | Complement of Base 10 Integer | Python

yun_s 2022. 1. 4. 20:37
728x90
반응형

문제 링크: https://leetcode.com/problems/complement-of-base-10-integer/


문제

The complement of an integer is the integer you get when you flip all the 0's to 1's and all the 1's to 0's in its binary representation.

  • For example, The integer 5 is "101" in binary and its complement is "010" which is the integer 2.

Given an integer n, return its complement.


조건

  • 0 <= n < $10^9$

내 풀이

LeetCode 476번(Number Complement)와 같은 문제다.

다만 조건에서 n이 0부터 시작한다는 점이 다르다.

따라서 n=0일 때 1을 출력하는 것을 추가한다.


코드

class Solution:
    def bitwiseComplement(self, n: int) -> int:
        if n == 0:  return 1
        ans = 0
        cur = 1
        
        while n > 1:
            a, b = n//2, n%2
            n = a
            if b == 0:
                ans += cur
            cur *= 2
        
        return ans
728x90
반응형
Comments