U E D R , A S I H C RSS

Eight Queen Problem/lasy0901

같은 λŒ€κ°μ„ μ— μžˆλ‹€λ©΄ xμ’Œν‘œμ™€ yμ’Œν‘œμ˜ ν•©μ΄λ‚˜ μ°¨κ°€ κ°™λ‹€λŠ” 사싀을 μ΄μš©ν•΄μ„œ ν”„λ‘œκ·Έλž˜λ°ν–ˆμŠ΅λ‹ˆλ‹€.
μ€ μ–΄κ±°μ§€λ‘œ μ†ŒμŠ€ μ½”λ“œ 크기λ₯Ό μ€„μ˜€μŠ΅λ‹ˆλ‹€. -_-a

λ‘λ²ˆμ§Έ ν”„λ‘œκ·Έλž¨μ€ ... μ΄μƒν•˜κ²Œ 컴파일이 μ•ˆλ˜λ”κ΅°μš”.. μ•Œκ³ λ³΄λ‹ˆ #include <stdafx.h> 을 μ•ˆ λ„£μ–΄μ„œ (VC6.0) λ‚­νŒ¨-_-a

ν•˜λ‚˜μ˜ ν•΄λ§Œ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨

~cpp 
#include <stdio.h>
int t[8],check(int),is_finished=0;
void make(int);
int check(int pos)
{
	int i,j;
	for (i=0;i<=pos;i++)
		for (j=0;j<=pos;j++)
			if ((i!=j)&&(t[i]==t[j]||t[i]+i==t[j]+j||t[i]-i==t[j]-j))
				return 0;
	return 1;
}
void make(int pos)
{
	int i;
	if (is_finished==0)
		if (pos<8)
		{for (i=0;i<8;i++)
				{t[pos]=i;
				if (check(pos)) make(pos+1);}}
		else
			{is_finished=1; // ν•˜λ‚˜μ˜ ν•΄λ§Œ 찾음 <- 이 뢀뢄이 μ—†μœΌλ©΄ μ—¬λŸ¬κ°€μ§€ ν•΄ 좜λ ₯
			for (i=0;i<8;i++)
				printf("%3d",t[i]);}
}
int main(int argc, char* argv[])
{
	make(0);
	return 0;
}

λͺ¨λ“  ν•΄λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨

~cpp 
#include <stdio.h>
#include <conio.h>
int t[8],check(int),count=0;
void make(int);
int check(int pos)
{
	int i,j;
	for (i=0;i<=pos;i++)
		for (j=0;j<=pos;j++)
			if ((i!=j)&&(t[i]==t[j]||t[i]+i==t[j]+j||t[i]-i==t[j]-j))
				return 0;
	return 1;
}
void make(int pos)
{
	int i;
	if (pos<8)
	{
		for (i=0;i<8;i++)
		{
			t[pos]=i;
			if (check(pos))
				make(pos+1);
		}
	}
	else
	{
		count++;
		printf("[%d] : ",count);
		for (i=0;i<8;i++)
			printf("%3d",t[i]);
		printf("\n");
	}
}

int main(int argc, char* argv[])
{
	make(0);
	return 0;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:12
Processing time 0.0084 sec