leetcode 461. Hamming Distance
14 Oct 2017 | 알고리즘 프로그래밍문제
The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note: 0 ≤ x, y < 2**31. Example: Input: x = 1, y = 4 Output: 2 Explanation: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ The above arrows point to positions where the corresponding bits are different. 풀이코드
def hamming_distance(x, y): bin_x = format(x, "032b") bin_y = format(y, "032b") result = 0 for i in range(32): if bin_x[i] != bin_y[i]: result += 1 return result - format() 함수를 활용 (참고)
>>> format(10, '010b') # '0000001010' >>> format(10, 'b') # '1010' >>> format(10, '#b') # '0b1010' 다른사람풀이
- 비트연산자 XOR연산 활용 (XOR연산은 각 자릿수를 비교하여 다르면 1, 같으면 0)
- 비트연산자 참고 (codecademy)
def hamming_distance(x, y): return bin(x^y).count('1')
초보몽키의 개발공부로그