SubsetsII
Published at 2022-03-18
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsetsWithDup = function(nums) {
nums.sort();
const used = []; // 이미 추가한 애들 저장
const recursion=(idx, list)=>{
if(idx === nums.length) return list; // 끝까지 돌았다면 리턴
// filter로 used에 아직 안들어간애들만 map 돌림
const temp = list.filter((item) => !used.includes(String([...item,nums[idx]])) ).map((item) => {
used.push(String([...item,nums[idx]]))
return [...item,nums[idx]];
} )
return recursion(idx+1, [...list, ...temp] );
}
return recursion(0, [[]]);
};