-
[Programmers] JavaScript 알고리즘 | Lv.0 세균 증식► JS Algorithm/Programmers 2023. 2. 20. 18:12반응형
🔒 문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
🔒 제한사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
🔒 입출력 예
n t result 2 10 2048 7 15 229,376
🔒 입출력 예 설명
입출력 예 #1
- 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
- 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
🔐 solution of others
for문, *=
const solution = (n, t) => { let answer = n; for (let i = 1; i <= t; i++) { answer *= 2; } return answer; }; solution(2, 10); //2048 solution(7, 15); //229,376
다른사람들은 비트연산자를 잘 다뤄서 문제를 풀었다.
.. 비트공부가 필요할것같다 ㅜㅜ 하나도 이해가 안간다 ㅜㅜㅜ
🔐 solution of others
<< 비트연산자
const solution = (n, t) => { return n<<t }; solution(2, 10); //2048 solution(7, 15); //229,376
?? 비트연산자는 진짜 1도 모르게따 ...
어쨋거나, n을 t번 2배씩 곱한것! 이라고 이해했다.
🔐 solution of others
Math.pow()
const solution = (n, t) => { return n * Math.pow(2, t); }; solution(2, 10); //2048 solution(7, 15); //229,376
Math.pow(base, exponent)
base 기반 / exponent 지수
2를 t번 곱하고 -> n을 곱해서 출력
🔐 solution of others
** 거듭제곱 연산자
const solution = (n, t) => { return n * 2 ** t; }; solution(2, 10); //2048 solution(7, 15); //229,376
Math.pow()와 ** 거듭제곱연산자는 형식이 비슷하다.
🔐 solution of others
while
const solution = (n, t) => { while (t-- > 0) { n *= 2; } return n; }; solution(2, 10); //2048 solution(7, 15); //229,376
t만큼 돌면서, n을 2배씩 곱한다.
반응형'► JS Algorithm > Programmers' 카테고리의 다른 글
[Programmers] JavaScript 알고리즘 | Lv.0 원소들의 곱과 합 (0) 2023.10.10 [Programmers] JavaScript 알고리즘 | Lv.0 문자열로 변환 (0) 2023.10.06 [Programmers] JavaScript 알고리즘 | Lv.0 제곱수 판별하기 (0) 2023.02.17 [Programmers] JavaScript 알고리즘 | 문자열안에 문자열 (0) 2023.02.17 [Programmers] JavaScript 알고리즘 | Lv.0 대문자와 소문자 (0) 2023.02.17