티스토리 뷰

코딩테스트

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

 

 

'코딩테스트' 카테고리의 다른 글

Lv.0 swift 자릿수 더하기  (0) 2024.03.18
Lv.0 Swift 점의 위치 구하기  (0) 2024.03.18
Lv.0 swift 짝수의 합  (0) 2024.03.17
Lv.0 Swift 각도기  (0) 2024.03.17
Lv.0 swift 두 수의 나눗셈  (1) 2024.03.17
최근에 올라온 글