상세 컨텐츠

본문 제목

[프로그래머스 풀이]: Lv.0 / 세균 증식

파이썬 코딩테스트

by Corn/sec 2025. 2. 4. 16:59

본문

작성: Corn/sec, ChatGPT, 편집: Corn/sec

문제 링크 🔗  프로그래머스 - 세균 증식

1. 문제 소개

프로그래머스 '세균 증식' 문제는 특정 개수의 세균이 1시간마다 두 배씩 증가하는 과정을 계산하는 문제입니다. 초기 세균 수 n과 경과한 시간 t가 주어질 때, t시간 후의 세균 수를 구하는 것이 목표입니다. 단순한 수학적 연산을 사용해 풀 수 있지만, 비트 연산자를 활용하면 더욱 효율적으로 해결할 수 있습니다.

 

# 비트 연산자 개념은 해당 포스팅에서 자세히 확인할 수 있습니다. #

[Python] 비트 연산자(Bitwise Operator) 개념 정리

 


2. 비트 연산자를 활용한 문제 해결

문제 분석

  1. 세균은 매시간 두 배로 증가합니다.
  2. t시간 후 세균 수는:  n * 2^t
  3. 2^t은 비트 연산의 왼쪽 시프트 연산 (<<)을 사용하여 간단히 구할 수 있습니다.
  4. n << tn * (2^t)와 같은 효과를 가집니다.

코드 구현

def solution(n, t):
    return n << t  # n을 왼쪽으로 t비트 이동 → 2^t 배 증가

# 테스트 실행
print(solution(2, 3))  # 2 * 2^3 = 16
print(solution(7, 2))  # 7 * 2^2 = 28

 

⚠️   왜 <<를 사용하면 되는가?

  • n << tn * 2^t와 동일합니다.
  • 곱셈 연산보다 비트 연산이 더 빠르고 효율적입니다.

3. 정리

  1. 비트 연산자는 이진수(0과 1) 단위에서 연산하는 방식입니다.
  2. 왼쪽 시프트(<<) 연산은 숫자를 2배씩 증가시키는 효과가 있습니다.
  3. 세균이 매시간 두 배로 증가하므로, n << t를 사용하면 쉽게 해결할 수 있습니다.

관련글 더보기