어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n
과 경과한 시간 t
가 매개변수로 주어질 때 t
시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
n
≤ 10t
≤ 15n | t | result |
---|---|---|
2 | 10 | 2048 |
7 | 15 | 229,376 |
입출력 예 #1
입출력 예 #2
💡 문제풀이 과정
- 나의 경우 제곱한 값을 반환하는
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);
}