소개글
#include
#define N 5 //남자와여자각각5명으로설정하였다
int StableMarriage();//StableMarriage함수선언부분
//남자들이좋아하는여성의번호를좋아하는순서대로저장되어있는곳이다
int Man[5][5]={2,3,1,4,5,
2,1,3,4,5,
1,2,3,5,4,
3,2,1,4,5,
-1,-1,-1,-1,-1};
//위와는좀다르게여자들이좋아하는남자들의번호를순서대로저장해놓은것이아니라
//남자들에게차례대로선호도의순위랭킹번호를차례로넣어놓은것이다
//예를들어2,1,3,4,5 로저장되어있다면1번남자는2순위이고2번남자를1순위로좋아한다는뜻이다
int Woman[5][5]={4,2,3,1,5,
1,5,2,3,4,
3,2,5,1,4,
3,5,2,4,1,
4,3,2,1,5};
int check[5]={-1,-1,-1,-1,-1};//남자가여자에게고백한상태정보를저장하는곳이다
int match[5]={0,0,0,0,0};//여자와커플이된남자의숫자를저장해놓습니다
//메인함수
void main()
{
int i,roof;
roof=2;
do{//반복문을통해계속해서남자1명의선호도를바꿔가면서매칭결과를관찰합니다
printf("1번남성의좋아하는여성의번호를순서대로입력하시오);
scanf("%d %d %d %d %d",&Man[4][0],&Man[4][1],&Man[4][2],&Man[4][3],&Man[4][4]);//1번남자가좋아하는순서대로여성의번호를입력받습니다
StableMarriage();
for(i=0;i<5;i++)
{
printf("%d번남성= %d번여성,match[i],i+1);//커플이된결과를차례로출력합니다
}
for(i=0;i<5;i++)//다시매칭전으로돌리기위해값을초기화시켜줍니다
{
match[i]=0;
check[i]=-1;
컴파일 실행환경
Visual Studio 2008,2010
압축파일 내 파일목록
안정적 결혼 문제.hwp
StableMatching/StableMatching.c
StableMatching/StableMatching.ncb
StableMatching/StableMatching.sln
StableMatching/StableMatching.suo
StableMatching/StableMatching.vcproj
StableMatching/StableMatching.vcproj.jhkwon19-PC.jhkwon19.user
참고 자료
Algorithm Design