본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트풀이 (문제 35 - 세균 증식)

728x90

 

# 문제

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



# 답안

// 1.입력: n => 정수 1,2,3 같은거, t -> 정수 1,2,3 같은거
// 2.출력: n은 1시간에 2배씩 증가하는데, t시간 후의 n  
// ex. n=2, t=3(시간)
// 1시간(i=0)이면, 2x2=4 (sum=sum(=n)*2) 
// 2시간(i=1)이면, 4x2=8 (sum=sum*2)
// 3시간(i=2)이면, 8x2=16 (sum=sum*2) (결국엔 return은 sum)


// 방법1) for문 사용 
function solution(n, t) {
    let sum = n;
    for(let i = 0; i < t; i++){
        sum *= 2;
    }
    return sum;
}


// 방법2) Math.pow() 사용 
function solution(n, t) {
    return n*Math.pow(2,t);  // Math.pow(2, t)는 2의 t승을 계산하는 함수
}



# 인사이트 

// Math.pow()는 JavaScript에서 제공되는 내장 함수 중 하나로, 주어진 숫자의 거듭제곱 값을 반환
// 예를 들어, Math.pow(2, 3)은 2^3 또는 2*2*2로 계산되어 8을 반환 (2의 3승)
// Math.pow() 함수는 부동 소수점 형태로 결과를 반환하므로, 정수로 결과를 받고 싶다면 소수점 이하를 버리거나 Math.floor() 함수 등을 사용하여 소수점 이하를 제거할 수 있음
728x90