[swift] 메모이제이션을 활용한 성능 최적화

메모이제이션은 이전에 계산한 값을 저장해두고, 나중에 동일한 계산을 다시 수행할 때 이전에 저장한 값을 활용하여 중복 계산을 피하는 최적화 기법입니다. 주로 반복적이고 중복되는 계산을 줄여 성능을 향상시킬 때 사용됩니다.

메모이제이션을 활용한 예시

var memo = [Int: Int]()

func fibonacci(_ n: Int) -> Int {
    if let value = memo[n] {
        return value
    }
    
    if n <= 2 {
        return 1
    }
    
    let result = fibonacci(n - 1) + fibonacci(n - 2)
    memo[n] = result
    return result
}

위의 예시는 피보나치 수열을 계산하는 함수에서 메모이제이션을 활용한 예시입니다. 이전에 계산한 값을 memo 딕셔너리에 저장하여 중복 계산을 피합니다.

메모이제이션을 적용하면 재귀 함수 등을 효과적으로 최적화할 수 있으며, 알고리즘 문제 풀이 등에서 성능 향상을 이끌어낼 수 있습니다.

참고 자료: