[LeetCode] 90. Subsets II

원숭2·2022년 1월 18일
0

LeetCode

목록 보기
13/51

문제

풀이

  1. 기존의 78. Subsets 문제와 유사하지만, 중복을 제거하기 2개의 절차가 필요함.
  • combinations에서 중복을 1차로 제거함.
  • (1,4), (4,1)이 다른 경우로 판단되는 경우를 막기위해 모든 요소를 sort 해 줌.

코드

from itertools import combinations

class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        res = [[]]
        
        for i in range(1, len(nums)+1) :
            tmp = list(map(lambda x : list(x), list(set(list(combinations(nums, i))))))
            for t in tmp :
                t.sort()
                if t not in res :
                    res.append(list(t))
        
        return res

0개의 댓글