Baekjoon/BruteForce
[백준 15663] N과 M(9) (순열) (C/C++)
워니-
2019. 11. 18. 13:26
#include <stdio.h>
int arr[100];
int input[100];
int visited[100];
int n, k;
void permutation(int cnt)
{
if(cnt == k)
{
for(int i = 0; i < k; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return;
}
// 중복값 유무 확인
int used[10000] = {0};
for(int i = 0; i < n; i++)
{
if(visited[i] == 0 && used[input[i]] == 0)
{
used[input[i]] = 1;
arr[cnt] = input[i];
visited[i] = 1;
permutation(cnt+1);
visited[i] = 0;
}
}
}
int main(void)
{
scanf("%d %d", &n, &k);
for(int i = 0; i < n; i++)
{
scanf("%d", &input[i]);
}
// input 버블정렬 -> 사전순으로 출력하기 위해서
for(int i = n-1; i > 0; i--)
{
for(int j = 0; j < i; j++)
{
if(input[j] > input[j+1])
{
int temp = input[j];
input[j] = input[j+1];
input[j+1] = temp;
}
}
}
permutation(0);
return 0;
}
|
cs |