🤔 나의 풀이
📌 문제
- 파이썬 알고리즘 인터뷰 번 문제
📌 날짜
2020.03.05
📌 시도 횟수
2 try
💡 Code
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
result = 0
for i in bin(x ^ y):
if i == "1":
result += 1
return result
💡 문제 해결 방법
- 이 문제도 XOR을 사용하면 쉽게 풀 수 있다.
- XOR은 '두 값의 각 자릿수를 비교해, 값이 같으면 0, 다르면 1을 계산'한다.
> 따라서 두 숫자를 XOR으로 처리한 결과를 문자열로 받고,
> 해당 문자열에서 값이 '1'(서로 비트가 다르면 1이므로)인 요소의 개수를 세면 된다.
💡 새롭게 알게 된 점
bin() : bin에 10진수 값을 할당하면 2진수로 변환된 값을 '문자열'로 반환한다.
>> bin(87)
>> "0b1010111"
int(요소, 진수) : 요소를 지정된 진수로 변환하여 '숫자형'으로 반환한다.
>> int("0b1010111", 2)
>> 87
>> int("1010111", 2) ---> 맨 앞의 0b는 생략해도 된다.
>> 87
❌ (한번에 맞추지 못한 경우) 오답의 원인
-