Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dynamic programming
- 구현
- implement
- geometry
- 자바
- Method
- sorting
- 코딩테스트
- simulation
- Data Structure
- Stack
- Binary Search
- Binary Tree
- Tree
- database
- Class
- two pointers
- Matrix
- string
- 코테
- java
- Math
- hash table
- array
- greedy
- Number Theory
- bit manipulation
- 파이썬
- SQL
- Counting
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 476. Number Complement 본문
1. Input
1) 정수 num
2. Output
1) num의 2의 보수
2) 2의 보수(complement)란 2진수로 표현했을 때 0을 1로, 1을 0으로 바꾼 후 다시 10진수로 변환한 수를 말한다.
3. Constraint
1) 1 <= num < 2^31
4. Example
Input: num=5 -> Output: 2
설명: 5를 2진수로 표현하면 101 -> 0과 1을 뒤집으면 010 -> 이를 다시 10진수로 바꾸면 2
5. Code
1) 첫 코드(2022/06/30)
long n =(int)(Math.log10(num) / Math.log10(2));
return (int)((long)Math.pow(2,n+1)-1-num);
- 어떤 수 x와 x의 2의 보수 y가 있을 때 x+y를 2진수로 표현하면 1로 가득 찬 수가 된다.
- 5 = 101(2), 2=010(2)이므로 둘을 더하면 111(2) = 7 = 2^3 -1이 되는 것을 이용한 코드
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 504. Base 7 (0) | 2022.11.30 |
---|---|
[LeetCode/Easy] 500. Keyboard Row (0) | 2022.11.30 |
[LeetCode/Easy] 461. Hamming Distance (0) | 2022.11.30 |
[LeetCode/Easy] 434. Number of Segments in a String (0) | 2022.11.30 |
[프로그래머스/Lv.1] 삼총사 (0) | 2022.11.30 |