내 맘대로 공부
article thumbnail

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

 

ex) 입출력 예시

n t result 
2 10 2048
7 15 229,376

 

Thinking Process

입출력 예시 중 n이 2이고, t가 10일 경우 예시를 보니 아 이건 '지수'다라는 생각이 들었다. n이 7인 경우를 생각해보면 1시간 후엔 14, 28, 56, 112, 224, 448 이 결과에서 4 = 7 * (2**1), 28 =  7 * (2**2), 56 = 7 * (2**3) 와 같은 규칙성을 찾을 수 있다 !

 

 

Code

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

Math.pow 메서드를 이용해서 풀 수도 있다.

 

 

Another Code

function solution(n, t) {
    return Array(t).fill(n).reduce((acc, curr) => acc * 2, n);
}

Array(t).fill(n)은 n을 t번 채우라는 뜻이다 n=2, t=10인 경우 배열에 2가 10번 들어갈 것이다. 위의 코드에서는 for문을 사용하지 않고, t만큼 반복할 수 있게 하기 위한 용도로 사용되었다.

profile

내 맘대로 공부

@곰도리도리잼

잘못된 정보가 있다면 알려주세요 🧸