Test/Python(20220101~)
프로그래머스.L0.세균증식
kiostory
2022. 10. 10. 14:16
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
입출력 예
n : t : result
입출력 예 설명
2 | 10 | 2048 |
7 | 15 | 229,376 |
입출력 예 설명
입출력 예 #1
- 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
- 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
* 첫 번째 생각
def solution(n, t):
answer = n
for _ in range(t):
answer *= 2
return answer
한 시간에 2배니까 answer = answer * 2배
* 두 번째 생각
def solution(n, t):
return n*2**t
첫 번째 생각에서, 결국 answer = answer * 2 를 t번 반복
answer = n이라고 했으므로, n * 2 ** t
비트 쉬프트로 왼쪽이면 2배씩 증가, 오른쪽이면 1/2배씩 감소이므로
n << t로도 표현할 수 있겠다네....
def solution(n, t):
return n<<t