세균 증식
2024. 9. 23. 18:00ㆍ코딩테스트 입문
https://school.programmers.co.kr/learn/courses/30/lessons/120910
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
입출력 예
n | t | result |
2 | 10 | 2048 |
7 | 15 | 299,376 |
입출력 예 설명
입출력 예 #1
- 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
- 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
1시간마다 2배로 증식하는 세균이 t 시간 이후에는 얼마나 증식했는지 구하는 문제입니다.
문제의 핵심은 시간이 지날 때마다 2배씩 증가한다는 점이죠. 다시 말해 2의 t 제곱만큼 숫자가 커진다는 뜻입니다.
이전에 사용했던 제곱 연산(**)을 통해서 n * (2 ** t)를 구현해준다면 t 시간 이후의 세균의 마리 수를 구할 수 있습니다.
파이썬으로 문제를 풀어보겠습니다.
def solution(n, t):
return n * (2 ** t)
괄호를 해줄 필요는 없습니다만 제가 보기 편하게 괄호를 추가했습니다.
다른 풀이 방법으로 비트시프트를 사용해서 구현하는 방법이 있기는 한데, 저도 봤지만 딱히 쓸 일은 없어서 생략하겠습니다.