[프로그래머스] 세균 증식


문제 설명

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


제한사항

  • 1 ≤ n ≤ 10
  • 1 ≤ t ≤ 15

입출력 예

ntresult
2102048
715229,376

입출력 예 설명

입출력 예 #1

  • 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, …, 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.

입출력 예 #2

  • 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, …, 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.

나의 풀이

function solution(n, t) {
  let answer = 0;
  return (answer = Math.pow(2, t) * n);
}

나의 두번째 풀이(Code Refactoring)

function solution(n, t) {
  return n * 2 ** t;
}

//Math.pow를 안쓰고 2^t값 만큼 증식 n의 최초 세균의 갯수를 넣어줌

참고 할 만한 다른 사람의 코드

function solution(n, t) {
  return n << t;
}
// 비트연산으로 푸는 방법..