[python] 비트 연산을 이용한 알고리즘

비트 연산은 컴퓨터의 내부적인 데이터 처리에 사용되는 연산 기술입니다. 이러한 비트 연산을 이용하여 다양한 알고리즘을 구현할 수 있습니다. 이번 포스트에서는 파이썬에서 비트 연산을 활용한 알고리즘에 대해 알아보겠습니다.

1. 비트 연산의 종류

파이썬에서 비트 연산은 다음과 같은 종류를 가지고 있습니다.

2. 비트 연산을 활용한 예제

예제 1: 집합의 원소 개수 구하기

비트 연산을 활용하여 집합의 원소 개수를 구하는 예제를 살펴보겠습니다. 각 원소를 비트로 표현한 후, & 연산을 사용하여 공통된 비트 위치를 확인할 수 있습니다.

def count_set_bits(n):
    count = 0
    while n > 0:
        count += n & 1
        n >>= 1
    return count

result = count_set_bits(5)
print(result)  # 출력: 2

예제 2: 중복 제거하기

비트 연산을 활용하여 중복된 원소를 제거하는 예제도 살펴보겠습니다. 각 원소를 비트로 표현한 후, | 연산을 사용하여 중복된 비트를 확인할 수 있습니다.

def remove_duplicates(nums):
    result = 0
    for num in nums:
        result |= 1 << num
    unique_nums = []
    while result > 0:
        unique_nums.append(result & 1)
        result >>= 1
    return unique_nums

nums = [1, 2, 3, 2, 1]
result = remove_duplicates(nums)
print(result)  # 출력: [1, 2, 3]

3. 결론

비트 연산은 데이터 처리에 있어서 효율적인 알고리즘을 구현하는데 사용될 수 있습니다. 위에서 살펴본 예제들을 참고하여 파이썬에서 비트 연산을 활용하는 다양한 알고리즘을 구현해보세요.

참고 자료