두 개의 숫자 x와 y가 있다고 가정하면 x와 y의 이진 표현이 서로의 아나그램인지 여부를 확인해야 합니다.
따라서 입력이 x =9 y =12와 같으면 9의 이진 표현이 1001이고 12의 이진 표현이 1100이므로 출력은 True가 됩니다. 따라서 이 둘은 서로의 아나그램입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- x와 y의 1의 개수가 같으면
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def set_bit_count(num) : cnt = 0 while num: cnt += num & 1 num >>= 1 return cnt def solve(x, y) : if set_bit_count(x) == set_bit_count(y): return True return False x = 9 y = 12 print(solve(x, y))
입력
9, 12
출력
True