본문 바로가기
algorithm

[algorithm] 백준 - 모든 순열

by 대우니 2020. 10. 29.
728x90
반응형

nPr
서로 다른 n개의 원소에서 r개를 뽑아 한줄로 세우는 경우의 수
순서가 부여된 집합을 다른 순서로 뒤섞는 연산이다.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> numVector;
vector<vector<int>> permutationVector;
void swap(int a, int b){
    int temp = numVector[a];
    numVector[a] = numVector[b];
    numVector[b] = temp;
}
void permutation(int size, int index){
    if(index == size - 1){
        permutationVector.push_back(numVector);
    }
    else{
        for(int i = index; i < size; i++){
            swap(i, index);
            permutation(size, index + 1);
            swap(i, index);
        }
    }
}
int main(void){
    int count;
    cin >> count;
    for(int i = 0; i < count; i++){
        numVector.push_back(i + 1);
    }
    permutation(count, 0);
    sort(permutationVector.begin(), permutationVector.end());
    for(int i = 0; i < permutationVector.size(); i++){
        for(int j = 0; j < count; j++){
            cout << permutationVector[i][j] << " ";
        }
        cout << "\n";
    }
}

https://github.com/jeongdaeun98/algorithm/blob/master/2020/20102802.cpp

 

jeongdaeun98/algorithm

백준, 프로그래머스. Contribute to jeongdaeun98/algorithm development by creating an account on GitHub.

github.com

 

반응형

'algorithm' 카테고리의 다른 글

[algorithm] 백준 - N과 M (8)  (0) 2020.10.29
[algorithm] 백준- N과 M(7)  (0) 2020.10.29
[algorithm] 백준 - 이전 순열  (0) 2020.10.29
[algorithm] 숨바꼭질 3  (0) 2020.10.29
[algorithm] 테트로미노  (0) 2020.10.28