입력 코드
#include <stdio.h>
int marker[8] = {};
char buffer[32];
void print(int len, int depth, char* end) {
if (!depth) {
for (int i = 0; i < len; ++i) {
if (!marker[i]) {
end[0] = i + '1';
end[2] = '\0';
puts(buffer);
}
}
} else {
for (int i = 0; i < len; ++i) {
if (!marker[i]) {
marker[i] = 1;
end[0] = i + '1';
end[1] = ' ';
end[2] = '\0';
print(len, depth - 1, end + 2);
marker[i] = 0;
}
}
}
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
print(n, m - 1, buffer);
}
출처 www.acmicpc.net/source/19499631
코드 설명
#백트래킹
문제 출처
'C' 카테고리의 다른 글
#103. [백준_C언어] 1094 : 막대기 \ 비트마스킹 (0) | 2021.02.27 |
---|---|
#102. [백준_C언어] 11723 : 집합 \ 비트마스킹 (0) | 2021.02.27 |
#100. [백준_C언어] 14888 : 연산자 끼워넣기 \ 백트래킹 (0) | 2021.02.26 |
#99. [백준_C언어] 2309 : 일곱 난쟁이 \ 브루트포스 알고리즘 (0) | 2021.02.25 |
#98. [백준_C언어] 1065 : 한수 \ 브루트포스 알고리즘 (0) | 2021.02.25 |