반응형
#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 ... 이런식으로 나옴 = 중복 순열
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
다른 블로그 참고한 조합 재귀방법 0자리를 비우고 for 문 안 씀 (0) | 2020.05.27 |
---|---|
더 직관적인 char int 바꾸기 (0) | 2020.05.27 |
가장 큰 숫자 작은 숫자 찾기. 비효율적임 (0) | 2020.05.27 |
중복 순열 문제 (0) | 2020.05.27 |
흠 start = mid는 에러나는 군 (0) | 2020.05.23 |
상처 길이 찾기 문제 (0) | 2020.05.23 |
이중배열에서 binary search 해보기 (0) | 2020.05.23 |
binary search 구현2 서재에서 책 찾기 (0) | 2020.05.23 |