궁금한게 많은 개발자 노트

[ leetcode ] 78. Subsets 본문

Algorithm

[ leetcode ] 78. Subsets

궁금한게 많은 개발자 2023. 5. 2. 13:59

조합을 구하는 문제입니다. next_permutation을 활용하여 순열 중에서 원하는 개수만큼 뽑는 방식을 사용하였습니다.

모든 조합의 경우의 수를 출력하므로 출력할 개수를 늘리면서 확인하였습니다.

#include <algorithm>
#define swap(a,b,t)((t) = (a), (a) = (b), (b) = (t))

class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        vector<vector<int>> answer;
        answer.push_back(vector<int>{});
        for (int i = 0; i < nums.size(); i++) {
            vector<int> exist(nums.size(), 0);
            for (int j = 0; j <= i; j++) exist[exist.size() - 1 - j] = true;
            do {
            	vector<int> temp;
                for (int i = 0; i < exist.size(); i++) if(exist[i]) temp.push_back(nums[i]);
                answer.push_back(temp);
            } while (next_permutation(exist.begin(), exist.end()));
        }
        return answer;
    }
};

 

'Algorithm' 카테고리의 다른 글

[ leetcode ] 859. Buddy Strings  (0) 2023.07.07
[ leetcode ] 112. Path Sum  (0) 2023.05.09
[ leetcode ] 57. Insert Interval  (0) 2023.05.02
[ leetcode ] 450. Delete Node in a BST  (0) 2023.05.02
[ leetcode ] 11. Container With Most Water  (0) 2023.05.02
Comments