프로그래밍 알고리즘

[정올 1169] 주사위던지기1

꾸준한사람 2022. 12. 31. 03:12
반응형

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=449&sca=99&sfl=wr_hit&stx=1169 

 

JUNGOL

 

www.jungol.co.kr

#include <stdio.h>

int N, M, mt[6*6*6*6*6 + 10][5], cnt, comb[5];

inline int getBgIdx(int idx) {
	if (M == 2)	{
		if (idx == 0)	return 1;
		else			return comb[idx - 1];
	}
	return 1;
}

int check(int idx) {
	if (M == 3)	{
		if (idx == 0)	return 1;
		for (int i = 0; i < idx; i++)
			if (comb[i] == comb[idx]) return false;
	}
	return true;
}

void fill(int idx) {
	if (idx == N) {
		for (int i = 0; i < N; i++) mt[cnt][i] = comb[i];
		cnt++;
		return;
	}

	for (int i = getBgIdx(idx); i <= 6; i++) {
		comb[idx] = i;
		if (check(idx))	fill(idx + 1);
	}
}

int main(void) {
	scanf("%d %d", &N, &M);
	fill(0);
	for (int i = 0; i < cnt; i++) {
		for (int j = 0; j < N; j++)		printf("%d ", mt[i][j]);
		printf("\n");
	}	
	return 0;
}
반응형

'프로그래밍 알고리즘' 카테고리의 다른 글

[정올 1183] 동전자판기(하)  (0) 2022.12.31
[정올 1175] 주사위던지기2  (0) 2022.12.31
[정올 1161] 하노이1  (0) 2022.12.31
[정올 1158] 삽입정렬  (0) 2022.12.31
[정올 1157] 버블정렬  (0) 2022.12.30