문제 링크 (opens new window)

# 문제 설명

  1. DP인데, prefix와 suffix를 구분하는 알고리즘이 포함되어 있다.
class Solution {
    func productExceptSelf(_ nums: [Int]) -> [Int] {
        var prefix: [Int] = .init(repeating: 1, count: nums.count)
        var suffix: [Int] = .init(repeating:1, count: nums.count)
        var result: [Int] = .init(repeating: 0, count: nums.count)

        for i in 1..<nums.count {
            prefix[i] = prefix[i-1] * nums[i-1]
        }

        for i in Array(0..<nums.count-1).reversed() {
            suffix[i] = suffix[i+1] * nums[i+1]
        }

        for i in 0..<nums.count {
            result[i] = suffix[i] * prefix[i]
        }
        return result
    }
}