[백준 15649] N과 M(1)

xaq03061·2019년 11월 11일
0
bool check[10];
int arr[10] = { 0, };

void go(int index, int n, int m) {
	if (index == m) {
		for (int i = 0; i < m; i++) {
		 cout << arr[i]<<" ";
		}
		cout << "\n";
		return;
	}
	for (int j = 1; j <= n; j++) {
		if (check[j]) continue;
		check[j] = true;
		arr[index] = j;
		go(index + 1, n, m);
		check[j] = false;
	}
}
이 문제에서 go함수에서 return 되었을 때 go(index+1, n, m) 이후 check[j] = false; 가 실행되는 데,
go함수에 index+1로 값이 들어갔기에 return 후에 index값이 index+1이라고 생각해서 틀렸습니다.

0개의 댓글