홈 LeetCode 461. 해밍 거리
글
취소

LeetCode 461. 해밍 거리

image

[문제 링크] https://leetcode.com/problems/hamming-distance/

XOR 연산은 x와 y의 같은 위치 비트가 서로 다를 때 해당 위치를 1로 만듭니다. 따라서 x ^ y는 서로 다른 모든 비트 위치를 표시하고, Integer.bitCount는 그 1 비트의 개수, 즉 해밍 거리를 셉니다.

Java 정수의 너비는 항상 32비트이므로 시간 복잡도와 추가 공간 복잡도는 각각 $O(1)$입니다.

1
2
3
4
5
6
7
class Solution {
    public int hammingDistance(int x, int y) {
        // XOR는 두 입력이 다른 비트 위치를 1로 표시한다.
        // bitCount는 표시된 위치의 개수를 센다.
        return Integer.bitCount(x ^ y);
    }
}
이 글은 저자가 CC BY 4.0 라이선스로 배포합니다.