티스토리 뷰

문제 설명

어떤 세균은 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함