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')