세균 증식

2024. 9. 23. 18:00코딩테스트 입문

https://school.programmers.co.kr/learn/courses/30/lessons/120910

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ n ≤ 10
  • 1 ≤ ≤ 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)

 

괄호를 해줄 필요는 없습니다만 제가 보기 편하게 괄호를 추가했습니다.

 

다른 풀이 방법으로 비트시프트를 사용해서 구현하는 방법이 있기는 한데, 저도 봤지만 딱히 쓸 일은 없어서 생략하겠습니다.

'코딩테스트 입문' 카테고리의 다른 글

7의 개수  (0) 2024.09.25
문자열 정렬하기 (2)  (0) 2024.09.24
제곱수 판별하기  (0) 2024.09.22
문자열안에 문자열  (0) 2024.09.21
OX퀴즈  (0) 2024.09.20