어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
function solution(n, t) {
let answer = n;
for (let i = 1; i <= t; i++) {
answer = answer * 2;
}
return answer;
}
n의 값을 answer에 넣어준 후, t의 수만큼 반복문을 돌며 answer = answer x 2를 한다. 분명 더 좋은 방법이 있을 것이라고 생각했다..!
function solution(n, t) {
return n << t;
}
2진수임을 알아채고 비트를 이동시키는 시프트 연산자를 사용했다.
n의 위치에서 t만큼 왼쪽으로 이동하는 것이다.
solution(2, 10)을 예로 들어보면 다음 이미지와 같다.
function solution(n, t) {
while (t-- > 0) n *= 2;
return n;
}
반복문을 돌리며 t의 수를 하나씩 줄여가고, n = n x 2를 해준다.
t가 더이상 0보다 크지 않을 때 반복문이 멈춘다.
function solution(n, t) {
return n * 2 ** t;
}
📌 Math.pow(base, exponent) : base에 exponent를 제곱한 값을 반환하며, base ** exponent와 같다.
base
밑 값
exponent
밑 을 제곱하기 위해 사용하는 지수.