본문 바로가기
알고리즘 일기

선택하는 순열

by Beijing_KingGod 2019. 9. 2.
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int main() {

	vector<int> vc;
	vector<int> temp;
	for (int i = 1; i < 10; i++) {
		vc.push_back(i);
		temp.push_back(0);
	}
	for (int i = 0; i < 3; i++) {
		temp[i] = 1;
	}
	sort(temp.begin(), temp.end());
	vector<vector<int>> per;
	do {
		vector<int> keep;
		for (int i = 0; i < temp.size(); i++) {
			if (temp[i] == 1) {
				keep.push_back(vc[i]);
			}
		}
		per.push_back(keep);
	} while (next_permutation(temp.begin(), temp.end()));
	
	
	vector<vector<int>> per2;
	for (int i = 0; i < per.size(); i++) {
		do {
			vector<int> keep;
			for (int j = 0; j < per[i].size(); j++) {
				keep.push_back(per[i][j]);
			}
			per2.push_back(keep);
		} while (next_permutation(per[i].begin(), per[i].end()));
	}

	for (int i = 0; i < per2.size(); i++) {
		for (int k = 0; k < per2[i].size(); k++) {
			cout << per2[i][k];
		}
		cout << endl;
	}
	system("pause");
	return 0;
}

'알고리즘 일기' 카테고리의 다른 글

프로그래머스 다음 큰 숫자 // 이진수 변환 // 시간초과됨(해결완료)  (0) 2019.09.03
행렬 경우의수  (0) 2019.09.02
조합  (0) 2019.09.02
전체 순열  (0) 2019.09.02
템플릿 // char->string  (0) 2019.09.02

댓글