코딩테스트

Lv.0 swift 세균 증식

알롱도담쓰 2024. 3. 17. 23:47

문제 설명

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

 

제한 조건

1 ≤ n ≤ 10
1 ≤ t ≤ 15

 

내 답안

func solution(_ n:Int, _ t:Int) -> Int {
    var result = n
    
    for _ in 1...t {
        result = result * 2
    }
    
    return result
}

 

접근 방법

  1. 초기 세균의 수 n을 result에 할당해서 시작 갯수로 삼음
  2. 1...t 범위에 대해 반복하며, 각 반복마다 result의 값을 두 배로 증가

 

다른 풀이

func solution(_ n:Int, _ t:Int) -> Int {
    return n * Int(pow(2.0, Double(t)))
}

 

n * 2^t 로 증가한다고 해서 그걸 바탕으로 함수를 쓴 건데..

 

알게 된 것

 

pow()

  • x를 y의 거듭제곱으로 계산한 결과를 반환
func pow(
    _ x: Decimal,
    _ y: Int
) -> Decimal