[프로그래머스] Lv.0 세균 증식 JavaScript

Janet·2023년 4월 11일
0

Algorithm

목록 보기
135/314

문제 설명

어떤 세균은 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합니다.

문제풀이

💡 문제풀이 과정

  • 나의 경우 제곱한 값을 반환하는 Math.pow()를 통해 풀이 하였는데, 다른 사람의 풀이 중 비트 연산자왼쪽 시프트(<<)를 이용한 풀이를 함께 참고하게 되었다. mdn 문서에 따르면 설명은 다음과 같다, “왼쪽 시프트 (<<) 연산자는 첫 번째 피연산자를 명시된 비트 수(32의 나머지)만큼 왼쪽으로 이동합니다. 왼쪽으로 이동된 초과 비트는 폐기됩니다. 오른쪽은 움직인 비트 수 만큼 0비트로 채워집니다.” 다음 예제 참고 ⬇️
     9 (10진수): 00000000000000000000000000001001 (2진수)
                --------------------------------
9 << 2 (10진수): 00000000000000000000000000100100 (2진수) = 36 (10진수)
    
9 << 2; // 36 
// 9 * (2 ** 2) = 9 * (4) = 36
    
9 << 3; // 72
// 9 * (2 ** 3) = 9 * (8) = 72

✅ 답안

function solution(n, t) {
  return n << t;
  // return n * (2 ** t);
  // return n * Math.pow(2, t);
}
profile
😸

0개의 댓글