From 60253b5d588923b24125b62fc387e82c8452ab80 Mon Sep 17 00:00:00 2001 From: ji-hyup Date: Mon, 10 Aug 2026 13:39:18 +0900 Subject: [PATCH] 476 --- .../v2/476. Number Complement.py" | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 "leetcode3/\353\263\200\354\247\200\355\230\221/v2/476. Number Complement.py" diff --git "a/leetcode3/\353\263\200\354\247\200\355\230\221/v2/476. Number Complement.py" "b/leetcode3/\353\263\200\354\247\200\355\230\221/v2/476. Number Complement.py" new file mode 100644 index 00000000..40de4310 --- /dev/null +++ "b/leetcode3/\353\263\200\354\247\200\355\230\221/v2/476. Number Complement.py" @@ -0,0 +1,46 @@ + +''' +1. 아이디어 : +이진수 구하고 1을 0으로, 0을 1로 바꾼 후 다시 정수로 변환한다. + +2. 시간복잡도 : +o(n) + +3. 자료구조/알고리즘 : +''' + +class Solution(object): + def getBinary(self, n): + s = '' + while True: + if n == 0: + break + tmp = n % 2 + n = n // 2 + s += str(tmp) + + return s[::-1] + + def getInt(self, b): + num = 0 + b = b[::-1] + n = len(b) + # print(b) + for i in range(n): + if int(b[i]) %2 != 0: + num +=2 ** i + + return num + + def findComplement(self, num): + """ + :type num: int + :rtype: int + """ + # print(self.getBinary(num)) + b = self.getBinary(num) + tmp = '' + for i in b: + tmp += '0' if i == '1' else '1' + + return self.getInt(tmp) \ No newline at end of file