파이썬 기초문법/파이썬_코딩테스트

코딩 테스트 대비! 파이썬으로 비트 조작(Bit Manipulation) 기법 익히기

Family in August 2024. 5. 15. 09:06
반응형


파이썬으로 비트 조작(Bit Manipulation) 기법 익히기


문제 설명

정수 `n`이 주어졌을 때, `n`의 비트 표현에서 1의 개수를 계산하는 함수를 작성하세요.


예시 입출력

입력: n = 19 (0b10011)
출력: 3

입력: n = 32 (0b100000)  
출력: 1



솔루션 코드

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

# 테스트 케이스
print("1의 개수:", count_bits(19))
print("1의 개수:", count_bits(32))



코드 설명

이 포스팅에서는 비트 조작(Bit Manipulation) 기법을 활용하여 정수의 비트 표현에서 1의 개수를 계산하는 문제를 해결했습니다. 비트 조작 기법은 비트 연산자를 활용하여 효율적으로 문제를 해결하는 기법으로, 코딩 테스트와 실무에서 다양하게 사용되므로 반드시 학습해야 합니다.

비트 조작 기법은 정수를 비트 단위로 다루는 기법입니다. 주요 비트 연산자로는 비트 AND(`&`), 비트 OR(`|`), 비트 XOR(`^`), 비트 시프트(`<<`, `>>`) 등이 있습니다. 이러한 연산자들을 활용하여 효율적으로 문제를 해결할 수 있습니다.

코드에서는 `count_bits` 함수에서 비트 조작 기법을 구현했습니다. 먼저 `n`의 가장 오른쪽 비트가 1인지 확인하기 위해 `n & 1` 연산을 수행합니다. 이 값이 1이면 `count`를 증가시킵니다. 그리고 `n`을 오른쪽으로 1비트 시프트(`n >>= 1`)하여 다음 비트를 확인합니다. 이 과정을 `n`이 0이 될 때까지 반복하면 1의 개수를 계산할 수 있습니다.

비트 조작 기법은 다음과 같은 장점이 있어 매우 유용합니다.

1. 메모리 효율성 : 비트 연산은 메모리 사용량이 적어 효율적입니다.
2. 속도 : 비트 연산은 CPU에서 매우 빠르게 수행됩니다.
3. 비트 플래그 : 비트를 사용하여 여러 상태를 표현할 수 있습니다.

이러한 장점 때문에 비트 조작 기법은 압축, 암호화, 상태 표현 등 다양한 분야에서 활용됩니다. 또한 코딩 테스트에서도 자주 출제되므로 반드시 숙지해야 할 기법입니다.

비트 조작 기법은 처음에는 어렵게 느껴질 수 있지만, 연습을 통해 익숙해지면 복잡한 문제도 효과적으로 해결할 수 있습니다. 따라서 이 기법을 꾸준히 학습하고 연습하는 것이 중요합니다.

반응형