
문제에서는 두 정수의 절대 차이가 정확히 k인 경우가 없는 subset을 beautiful subset이라고 정의한다.
구하려는 값은 모든 non-empty subset 중에서 조건을 만족하는 beautiful subset의 총 개수이다.
제약사항
1 <= nums.length <= 20
class Solution {
public:
    unordered_map<int,int> m;
    int answer =0 ;
    int visited[21] = {0, };
    void dfs(int idx, int depth, vector<int>& nums, int k) {
        if(depth > 0){
            answer++;   
        }
        for(int i = idx; i<nums.size(); i++){
            if(m.find(nums[i] - k) != m.end()){
                int value = m[nums[i]-k];
                if(value != 0){
                    continue;
                }
            }
            if(m.find(nums[i] + k) != m.end()){
                int value = m[nums[i]+k];
                if(value != 0){
                    continue;
                }
            }
            if(!visited[i]){
                visited[i] = 1;
                m[nums[i]]++;
                dfs(i + 1, depth+1, nums ,k);
                m[nums[i]]--;
                visited[i] = 0;
            }
        }
    }
    int beautifulSubsets(vector<int>& nums, int k) {
        dfs(0,0,nums,k);
        return answer;
    }
};