- 기존의 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