문제 👉 <Hamming Distance - LeetCode>
1. 문제 (Hamming Distance (XOR))
두 정수 사이의 해밍 거리는 해당 비트가 다른 위치의 수입니다. 두 개의 정수 x와 y가 주어지면 그 사이의 해밍 거리를 반환합니다.
Input: x = 1, y = 4
Output: 2
Explanation:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
2. 풀이
비트 연산
을 이용한 풀이
AND (
&
) : 두 비트가 모두 1이면 1, 아니면 0OR (
|
) : 두 비트중 하나라도 1이면 1, 아니면 0XOR (
^
) : 두 비트가 다르면 1, 아니면 0
Int 는 4bit (4*8 = 32 bytes) 이므로 32자리까지의 비트를 확인한다.
3. 코드
class Solution {
public int hammingDistance(int x, int y) {
int xor = x ^ y;
int cnt = 0;
for (int i=0; i<32; i++) {
cnt += (xor >> i) & 1;
}
return cnt;
}
}
- 결과 :
Time Submitted | Status | Runtime | Memory | Language |
---|---|---|---|---|
05/03/2021 | Accepted | 0 ms | 35.5 MB | java |
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 530. Minimum Absolute Difference in BST [JAVA(자바)] (0) | 2021.11.24 |
---|---|
[LeetCode] 107. Binary Tree Level Order Traversal II [JAVA(자바)] (0) | 2021.11.24 |
[LeetCode] 94. Binary Tree Inorder Traversal [JAVA(자바)] (0) | 2021.11.24 |
댓글