알고리즘

[리트코드(LeetCode)] 78번 Subsets

욘아리 2024. 1. 11. 22:42

https://leetcode.com/problems/subsets/

 

Subsets - LeetCode

Can you solve this real interview question? Subsets - Given an integer array nums of unique elements, return all possible subsets (the power set). The solution set must not contain duplicate subsets. Return the solution in any order.   Example 1: Input: n

leetcode.com

모든 부분 집합을 반환하는 문제다.

예시

Example 1:

Input: nums = [1,2,3]
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

 

Example 2:

Input: nums = [0]
Output: [[],[0]]

풀이

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        answers = []
        q = deque([(0, [])])

        while q:
            idx, cur = q.popleft()

            answers.append(cur[:])

            for i in range(idx, len(nums)):
                q.append((i + 1, cur  + [nums[i]]))

        return answers

 

- 너비 우선 탐색을 사용하여 부분 집합을 생성한다.