seungriyou / algorithm-study

알고리즘 & SQL 문제 풀이 기록
0 stars 0 forks source link

[LC] 377. Combination Sum IV #85

Open seungriyou opened 3 months ago

seungriyou commented 3 months ago

https://leetcode.com/problems/combination-sum-iv/ similar to #71

Approach

82 문제와 매우 비슷하지만, #82 는 combination의 개수를, 이번 문제는 permutation의 개수를 구하는 문제이다.

따라서 이번 문제에서는 중복을 허용해야 한다!

이를 위해서 (1D DP 풀이법 기준) #82 문제에서 for문 중첩 순서를 반대로 하면 된다.

def combinationSum4(self, nums: List[int], target: int) -> int:
    dp = [0] * (target + 1)
    dp[0] = 1

    for i in range(1, target + 1):
        for num in nums:
            if i >= num:
                dp[i] += dp[i - num]

    return dp[target]


Complexity