Problem
주어진 비트를 뒤집으면 됩니다.
Solution
비트 전체를 순회하면서 1 과 AND 연산을 반복합니다.
n
의 가장 오른쪽에 있는 값이 res
의 가장 왼쪽에 가야 하므로 res
는 0 부터 왼쪽 쉬프트, n
은 오른쪽 쉬프트를 반복하며 계속 비교하면 됩니다.
Java Code
public class Solution {
public int reverseBits(int n) {
int res = 0;
for (int i = 0; i < 32; i++) {
res <<= 1;
res += n & 1;
n >>= 1;
}
return res;
}
}
// 이건 꼼수
public class Solution {
public int reverseBits(int n) {
return Integer.reverse(n);
}
}
'알고리즘 문제 > LeetCode' 카테고리의 다른 글
[LeetCode Easy] Palindrome Linked List (Java) (2) | 2020.12.29 |
---|---|
[LeetCode Easy] Merge Sorted Array (Java) (0) | 2020.12.29 |
[LeetCode Easy] Linked List Cycle (Java) (0) | 2020.12.28 |
[LeetCode Easy] Intersection of Two Linked Lists (Java) (0) | 2020.12.28 |
[LeetCode Easy] Power of Three (Java) (0) | 2020.12.28 |