본문 바로가기

백준 연습

백준 15649 C언어

#include <stdio.h>

void Backtracking(int Arr[], int N, int M, int d) {
	for (int i = 1; i <= N; i++) {
		int k = 0;
		
		if (d == 0) 
			Arr[0] = i;
		else
		{
			for (k=0; k < d; k++) {
				if (Arr[k] == i) break;
			}
			if (k == d) {
				Arr[d] = i;
			}
			else continue;
		}
		
		if (M-1 == d) {
			for (int k = 0; k < M; k++)
				printf("%d ", Arr[k]);
			printf("\n");
		}
		else Backtracking(Arr, N, M, d + 1);
	}
}
int main() {
	int N, M;
	int Arr[8] = { 0, };
	scanf("%d%d", &N, &M);

	Backtracking(Arr, N, M, 0);
	return 0;
}

'백준 연습' 카테고리의 다른 글

백준 15651번 C언어  (0) 2020.08.16
백준 15650 C언어  (0) 2020.08.16
백준 9461 C언어  (0) 2020.08.15
백준 1003번 C언어  (0) 2020.08.14
백준 2748 C언어  (0) 2020.08.14