티스토리 뷰

반응형

문제 링크

 

Subsets - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제

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: nums = [1,2,3]

Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

 

Example 2:

Input: nums = [0]

Output: [[],[0]]

 

Constraints:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • All the numbers of nums are unique.

문제 풀이

이 문제는 주어진 배열로 만들 수 있는 모든 부분 집합을 만드는 문제였어요.

공집합은 모든 집합의 부분 집합이므로 이를 꼭 추가해줘야 합니다.

 

이 문제를 처음 봤을 땐 permutation 문제처럼 백트래킹으로 풀까...? 라고 생각이 들었지만 그건 한 번 해봐서 떠오른 다른 방법으로 풀었습니다.

위와 같은 아이디어로 모든 부분집합을 만들 수 있었습니다!

소스 코드

class Solution {
    func subsets(_ nums: [Int]) -> [[Int]] {
        var result: [[Int]] = []
        if nums.count == 0 {
            return result
        }
        
        result.append([])

        for i in 0..<nums.count {
            let count = result.count
            for j in 0..<count {
                result.append(result[j] + [nums[i]])
            }
        }
        
        return result
    }
}
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함