From 263ac07c83f2012c1beb8f053c780f40aa9ba593 Mon Sep 17 00:00:00 2001 From: SinnoLn Date: Mon, 10 Aug 2026 18:10:14 +0900 Subject: [PATCH] 476. Number Complement --- .../476. Number Complement.java" | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 "leetcode3/\354\235\264\354\247\204\355\235\254/476. Number Complement.java" diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/476. Number Complement.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/476. Number Complement.java" new file mode 100644 index 00000000..b4673372 --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/476. Number Complement.java" @@ -0,0 +1,23 @@ +/* + +1. 아이디어 : 10진법을 이진법으로 바꾸고, 1과 0을 바꾼 후, 값을 계산하는 문제 + 10진법이 포함되는 이진법의 범위를 파악후, 원래 값의 num을 빼면 된다 + +2. 시간복잡도 : O(31) + +3. 자료구조/알고리즘 : 비트 연산 + + */ + +class Solution { + public int findComplement(int num) { + int sum = 1; + int idx = 1; + while(num>sum) { + sum += idx*2; + idx*=2; + } + + return sum - num; + } +} \ No newline at end of file