C언어/문제풀다 하나씩

오랜만에 간단한 순열 문제

mcdn 2020. 5. 27. 18:26
반응형
#include <iostream>
using namespace std;
char abc[3];
char path[4];
int used[4];
void rank_all(int lev) {
	if (lev == 3) {
		cout << path << endl;
		return;
	}
	for (int i = 0; i < 3;i++) {
		if (used[i] == 0) {
			used[i] = 1;
			path[lev] = abc[i];
			rank_all(lev + 1);
			path[lev] = 0;
			used[i] = 0;
		}
	}
}

int main() {
	
	for (int i = 0; i < 3;i++) {
		cin >> abc[i];
	}
	rank_all(0);

	return 0;
}

입력 예제

A B C

출력 결과

ABC ACB BAC BCA CAB CBA

 

만약 used배열 안 썼으면 

AAA AAB AAC ... 이런식으로 나옴 = 중복 순열

 

 

반응형