[알고리즘 구현]Permutation (조합)

후이재·2020년 9월 5일
1
post-thumbnail
string per;                               // 조합을 위한 문자열
set<int> perSet;                          // 완성된 조합 set
bool check[100] = { false, };             // 방문 여부
vector<char>num;                          // 조합 elements

void permutation(int depth, int n){       // n은 원하는 문자열 길이
    if(depth == n){
        perSet.insert(stoi(per));         // 완성된 조합 저장
        return;
    }
    for(int i = 0; i < num.size(); i++){
        if(!check[i]){
            check[i] = true;
            per[depth] = num[i];          // 현재 depth에 i번째 문자 저장
            permutation(depth + 1, n);    // 다음 depth에서 재귀 실행
            check[i] = false;             // 현재 depth에 쓰인 문자 풀어주기
        }
    }
}

permutation(0, 2); // 길이가 2인 조합 얻기
profile
공부를 위한 벨로그

0개의 댓글