본문 바로가기
Coding Test/LeetCode

[LeetCode] 461. Hamming Distance [JAVA(자바)]

문제 👉 <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, 아니면 0

  • OR (|) : 두 비트중 하나라도 1이면 1, 아니면 0

  • XOR (^) : 두 비트가 다르면 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


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글