어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n 과 경과한 시간 t 가 매개변수로 주어질 때 t 시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
👇🏻내가 풀고 싶었던 방식
function solution(n, t) {
for (let i = 0; i < t; i++) {
result *= 2;
}
return result;
}
해당 문제는 각 시간마다 2배 씩 증가하는 지수 함수의 값을 계산하는 것으로 이해하면 된다
따라서 주어진 시간에 따라 2를 몇 번 곱해야하는지를 계산하여 최종 값을 도출 할 수 있다.
입력값 (n,t) 2개의
위 코드는 주어진 입력값 n 과 t 에 대하여 해당 문제의 해답을 반환하는 함수 **solution**을 구현한 것입니다. result 변수에 초기값으로 **num**을 할당하고, for 반복문을 사용하여 **hour**만큼 반복하면서 **result**에 2를 곱해줍니다. 마지막으로 result 값을 반환합니다.
이진수를 사용한 다른 사람 방식 접근 코드
function solution(n, t) {
return n << t;
}
i 0부터 시작하면 -1부터 시작하면 t+1 t 시작하고
이 함수는 주어진 n 값을 2의 거듭제곱으로 t 번 곱한 결과를 반환합니다.
함수는 먼저 for 루프를 사용하여 i 변수를 1부터 t+1까지 반복
각 반복에서 n은 2로 곱해집니다
즉, 첫 번째 반복에서 n은 n * 2가 되고,
두 번째 반복에서 n은 n * 2 * 2가 됩니다.
이런 식으로 t번 반복하면 n은 2의 거듭제곱으로 t 번 곱해진 값이 됩니다.
마지막으로, 함수는 곱셈 결과인 n을 반환합니다.
이 함수는 주어진 n 값을 t 만큼 왼쪽 시프트(shift) 연산한 결과를 반환합니다.
왼쪽 시프트 연산은 이진수의 비트를 왼쪽으로 이동시키는 연산입니다. 예를 들어, n이 10이고 t가 2라면, 이진수로 10은 1010입니다. 이진수의 비트를 왼쪽으로 2번 이동하면 101000이 되는데, 이 값은 10을 2의 2승(4)으로 곱한 값과 같습니다.
따라서, 이 함수는 n 값을 **t**번 왼쪽 시프트하여 2의 거듭제곱으로 **t**번 곱한 값을 반환합니다.
'Coding 🖐🏻 > javascript' 카테고리의 다른 글
프로그래머스 자바스크립트 |정수 내림차순으로 배치하기 풀이 (0) | 2023.10.26 |
---|---|
filter 필터 사용 문제 (0) | 2023.06.18 |
JS 문자열 정렬하기(1) | replace , split , sort , map (1) | 2023.03.22 |
JS | 렌더링 , SPA (1) | 2023.03.14 |
JS | arr.sort 정렬 메소드 사용하기 오름차순 내림차순 | 프로그래머스 중앙값 구하기 (0) | 2023.03.14 |