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만큼 반복할 수 있게 하기 위한 용도로 사용되었다.
'Algorithm Solution > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 주사위의 개수 (0) | 2023.01.25 |
|---|---|
| [프로그래머스] 가위 바위 보 (0) | 2023.01.24 |
| [프로그래머스] 암호해독 (0) | 2023.01.24 |
| [프로그래머스] 제곱수 판별하기 (0) | 2023.01.19 |
| [프로그래머스] 자릿수 더하기 (1) | 2023.01.19 |
