<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EC%B5%9C%EB%8B%A4%EC%9D%B8%2FCrossPuzzle</id>
	<title>최다인/CrossPuzzle - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EC%B5%9C%EB%8B%A4%EC%9D%B8%2FCrossPuzzle"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%B5%9C%EB%8B%A4%EC%9D%B8/CrossPuzzle&amp;action=history"/>
	<updated>2026-05-15T04:39:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%B5%9C%EB%8B%A4%EC%9D%B8/CrossPuzzle&amp;diff=82628&amp;oldid=prev</id>
		<title>1.236.163.157 at 03:15, 26 March 2017</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%B5%9C%EB%8B%A4%EC%9D%B8/CrossPuzzle&amp;diff=82628&amp;oldid=prev"/>
		<updated>2017-03-26T03:15:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.zeropage.org/index.php?title=%EC%B5%9C%EB%8B%A4%EC%9D%B8/CrossPuzzle&amp;amp;diff=82628&amp;amp;oldid=82627&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>1.236.163.157</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%B5%9C%EB%8B%A4%EC%9D%B8/CrossPuzzle&amp;diff=82627&amp;oldid=prev</id>
		<title>imported&gt;miura0806 at 08:49, 31 March 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%B5%9C%EB%8B%A4%EC%9D%B8/CrossPuzzle&amp;diff=82627&amp;oldid=prev"/>
		<updated>2014-03-31T08:49:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* 2013년 10월 22일 개발&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;stdlib.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #pragma warning(disable:4996)	//scanf 등의 함수로 인해 뜨는 4996에러를 무시함&lt;br /&gt;
 &lt;br /&gt;
 char puz_arr[17][42];	//퍼즐판 위의 모든 단어를 저장하는 배열([0]은 입력된 단어가 겹치지 않게 넣는 것의 편의성을 위함, [16]과 [41]은 단어가 뚫고나가지 않게 함을 위함)&lt;br /&gt;
 char input_word[100][15];	//차례로 입력되는 단어를 각각 저장하는 배열&lt;br /&gt;
 &lt;br /&gt;
 void puz_board();	//퍼즐판을 출력하는 함수&lt;br /&gt;
 void place_word(int word_num);	//입력받은 단어를 puz_arr에 규칙에 맞게 배치하는 함수&lt;br /&gt;
 void order_word(int word_num);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int i,word_num;&lt;br /&gt;
 &lt;br /&gt;
 	for(i=0;i&amp;amp;lt;656;i++)&lt;br /&gt;
 		puz_arr[i/41][i%41] = &amp;#039; &amp;#039;;&lt;br /&gt;
 	for(i=0;i&amp;amp;gt;1500;i++)&lt;br /&gt;
 		input_word[i/15][i%15] = &amp;#039; &amp;#039;;	//각각 배열을 모두 &amp;#039; &amp;#039;로 초기화&lt;br /&gt;
 	for(i=0;i&amp;amp;lt;42;i++)&lt;br /&gt;
 		puz_arr[16][i] = &amp;#039;!&amp;#039;;&lt;br /&gt;
 	for(i=0;i&amp;amp;lt;17;i++)&lt;br /&gt;
 		puz_arr[i][41] = &amp;#039;!&amp;#039;;	//단어가 뚫고나가는 것을 막기 위해 만든 배열의 끝부분은 !로 초기화&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;☆Cross Puzzle Game☆\n&amp;quot;);&lt;br /&gt;
 	for(word_num=0;;word_num++)&lt;br /&gt;
 	{&lt;br /&gt;
 		puz_board();	//퍼즐판 출력&lt;br /&gt;
 &lt;br /&gt;
 		printf(&amp;quot;단어를 입력하세요(최소 2글자, 최대 15글자, end 입력시 종료됨) : &amp;quot;);&lt;br /&gt;
 		scanf(&amp;quot;%s&amp;quot;,input_word+word_num);&lt;br /&gt;
 &lt;br /&gt;
 		if(strlen(input_word[word_num])&amp;amp;lt;2 || strlen(input_word[word_num])&amp;amp;gt;15)&lt;br /&gt;
 		{&lt;br /&gt;
 			printf(&amp;quot;최소 2글자, 최대 15글자의 단어를 입력해주세요.\n&amp;quot;);&lt;br /&gt;
 			for(i=0;i&amp;amp;lt;strlen(input_word[word_num]);i++)&lt;br /&gt;
 				input_word[word_num][i] = &amp;#039; &amp;#039;;&lt;br /&gt;
 			word_num--;&lt;br /&gt;
 			continue;&lt;br /&gt;
 		}		//입력 범위를 넘어갔을 경우 입력받은 배열을 초기화하고 다시 반복한다.&lt;br /&gt;
 &lt;br /&gt;
 		for(i=0;i&amp;amp;lt;strlen(input_word[word_num]);i++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if(input_word[word_num][i]&amp;amp;lt;&amp;#039;a&amp;#039; || input_word[word_num][i]&amp;amp;gt;&amp;#039;z&amp;#039;)&lt;br /&gt;
 				break;&lt;br /&gt;
 		}&lt;br /&gt;
 		if(i!=strlen(input_word[word_num]))&lt;br /&gt;
 		{&lt;br /&gt;
 			printf(&amp;quot;소문자 알파벳의 단어를 입력해주세요.\n&amp;quot;);&lt;br /&gt;
 			for(i=0;i&amp;amp;lt;strlen(input_word[word_num]);i++)&lt;br /&gt;
 				input_word[word_num][i] = &amp;#039; &amp;#039;;&lt;br /&gt;
 			word_num--;&lt;br /&gt;
 			continue;&lt;br /&gt;
 		}		//입력받은 단어가 소문자 알파벳이 아닐 경우 입력받은 배열을 초기화하고 다시 반복한다.&lt;br /&gt;
 &lt;br /&gt;
 		if(strcmp(input_word[word_num],&amp;quot;end&amp;quot;)==0)&lt;br /&gt;
 			break;	//end가 입력되면 반복문을 빠져나감.&lt;br /&gt;
 		place_word(word_num);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	order_word(word_num);&lt;br /&gt;
 	&lt;br /&gt;
 	printf(&amp;quot;\n☆입력된 단어들☆\n&amp;quot;);&lt;br /&gt;
 	for(i=0;i&amp;amp;lt;word_num;i++)&lt;br /&gt;
 		printf(&amp;quot;%s\n&amp;quot;,input_word[i]);&lt;br /&gt;
 &lt;br /&gt;
 	system(&amp;quot;pause&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void puz_board()&lt;br /&gt;
 {&lt;br /&gt;
 	int i,j;&lt;br /&gt;
 &lt;br /&gt;
 	printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	for(j=1;j&amp;amp;lt;16;j++)&lt;br /&gt;
 	{&lt;br /&gt;
 		for(i=1;i&amp;amp;lt;41;i++)&lt;br /&gt;
 			printf(&amp;quot;+-&amp;quot;);&lt;br /&gt;
 		printf(&amp;quot;+\n&amp;quot;);&lt;br /&gt;
 		&lt;br /&gt;
 		for(i=1;i&amp;amp;lt;41;i++)&lt;br /&gt;
 			printf(&amp;quot;|%c&amp;quot;,puz_arr[j][i]);&lt;br /&gt;
 		printf(&amp;quot;|\n&amp;quot;);&lt;br /&gt;
 	}&lt;br /&gt;
 	for(i=1;i&amp;amp;lt;41;i++)&lt;br /&gt;
 		printf(&amp;quot;+-&amp;quot;);&lt;br /&gt;
 	printf(&amp;quot;+\n\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void place_word(int word_num)&lt;br /&gt;
 {&lt;br /&gt;
 	int i,j,k,n;&lt;br /&gt;
 	int word_len;	//입력한 단어의 길이를 저장하기 위한 변수&lt;br /&gt;
 &lt;br /&gt;
 	word_len = strlen(input_word[word_num]);&lt;br /&gt;
 &lt;br /&gt;
 	if(word_num==0)&lt;br /&gt;
 	{&lt;br /&gt;
 		for(i=1;i&amp;amp;lt;word_len+1;i++)&lt;br /&gt;
 			puz_arr[1][i] = input_word[word_num][i-1];	//첫번째 단어는 제일 왼쪽 위부터 시작&lt;br /&gt;
 	}&lt;br /&gt;
 	else&lt;br /&gt;
 	{&lt;br /&gt;
 		for(i=1;i&amp;amp;lt;16;i++)&lt;br /&gt;
 		{&lt;br /&gt;
 			for(j=1;j&amp;amp;lt;41;j++)&lt;br /&gt;
 			{&lt;br /&gt;
 				if(input_word[word_num][0] == puz_arr[i][j])	//입력된 단어의 첫 글자와 같은 글자를 찾는다.&lt;br /&gt;
 				{&lt;br /&gt;
 					if(puz_arr[i][j+1]==&amp;#039; &amp;#039;)	//찾은 지점의 오른쪽이 빈 공간이라면,&lt;br /&gt;
 					{&lt;br /&gt;
 						if(puz_arr[i][j-1]==&amp;#039; &amp;#039; &amp;amp;amp;&amp;amp;amp; puz_arr[i-1][j+1]==&amp;#039; &amp;#039; &amp;amp;amp;&amp;amp;amp; (puz_arr[i+1][j+1]==&amp;#039; &amp;#039; || puz_arr[i+1][j+1]==&amp;#039;!&amp;#039;) &amp;amp;amp;&amp;amp;amp; (puz_arr[i][j+word_len]==&amp;#039; &amp;#039; || puz_arr[i][j+word_len]==&amp;#039;!&amp;#039;))	//단어가 오른쪽으로 들어갈 수 있는지 확인한다.&lt;br /&gt;
 						{&lt;br /&gt;
 							for(k=0;k&amp;amp;lt;word_len;k++)&lt;br /&gt;
 							{&lt;br /&gt;
 								if(puz_arr[i][j+k]!=&amp;#039; &amp;#039;)	//단어의 범위 안에 이미 글자가 있다면,&lt;br /&gt;
 								{&lt;br /&gt;
 									if(puz_arr[i][j+k]==input_word[word_num][k])	//그 글자가 단어의 글자와 어울릴 수 있는지 확인한다.&lt;br /&gt;
 										continue;&lt;br /&gt;
 									else&lt;br /&gt;
 										break;&lt;br /&gt;
 								}&lt;br /&gt;
 							}&lt;br /&gt;
 							if(k==word_len)		//search가 무사히 끝났다면&lt;br /&gt;
 							{&lt;br /&gt;
 								for(n=0;n&amp;amp;lt;word_len;n++)&lt;br /&gt;
 									puz_arr[i][j+n] = input_word[word_num][n];	//단어를 오른쪽으로 입력&lt;br /&gt;
 								return;&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					}&lt;br /&gt;
 &lt;br /&gt;
 					if(puz_arr[i+1][j]==&amp;#039; &amp;#039;)	//찾은 지점의 아래쪽이 빈 공간이라면,&lt;br /&gt;
 					{&lt;br /&gt;
 						if(puz_arr[i-1][j]==&amp;#039; &amp;#039; &amp;amp;amp;&amp;amp;amp; puz_arr[i+1][j-1]==&amp;#039; &amp;#039; &amp;amp;amp;&amp;amp;amp; (puz_arr[i+1][j+1]==&amp;#039; &amp;#039; || puz_arr[i+1][j+1]==&amp;#039;!&amp;#039;) &amp;amp;amp;&amp;amp;amp; (puz_arr[i+word_len][j]==&amp;#039; &amp;#039; || puz_arr[i+word_len][j]==&amp;#039;!&amp;#039;))	//단어가 아래쪽으로 들어갈 수 있는지 확인&lt;br /&gt;
 						{&lt;br /&gt;
 							for(k=0;k&amp;amp;lt;word_len;k++)&lt;br /&gt;
 							{&lt;br /&gt;
 								if(puz_arr[i+k][j]!=&amp;#039; &amp;#039;)	//단어의 범위 안에 이미 글자가 있다면,&lt;br /&gt;
 								{&lt;br /&gt;
 									if(puz_arr[i+k][j]==input_word[word_num][k])	//그 글자가 단어의 글자와 어울릴 수 있는지 확인한다.&lt;br /&gt;
 										continue;&lt;br /&gt;
 									else&lt;br /&gt;
 										break;&lt;br /&gt;
 								}&lt;br /&gt;
 							}&lt;br /&gt;
 							if(k==word_len)		//search가 무사히 끝났다면&lt;br /&gt;
 							{&lt;br /&gt;
 								for(n=0;n&amp;amp;lt;word_len;n++)&lt;br /&gt;
 									puz_arr[i+n][j] = input_word[word_num][n];	//단어를 아래쪽으로 입력&lt;br /&gt;
 								return;&lt;br /&gt;
 							}&lt;br /&gt;
 						}&lt;br /&gt;
 					}&lt;br /&gt;
 					&lt;br /&gt;
 					else&lt;br /&gt;
 						continue;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		if(i==16 &amp;amp;amp;&amp;amp;amp; j==41)	//넣을 자리를 찾지 못한 경우,&lt;br /&gt;
 		{&lt;br /&gt;
 			for(i=1;i&amp;amp;lt;16;i++)&lt;br /&gt;
 			{&lt;br /&gt;
 				for(j=1;j&amp;amp;lt;41;j++)&lt;br /&gt;
 				{&lt;br /&gt;
 					if(puz_arr[i][j]==&amp;#039; &amp;#039;)	//빈 공간을 찾아&lt;br /&gt;
 					{&lt;br /&gt;
 						for(k=0;k&amp;amp;lt;word_len+3;k++)&lt;br /&gt;
 						{&lt;br /&gt;
 							if(puz_arr[i][j+k]==&amp;#039; &amp;#039; &amp;amp;amp;&amp;amp;amp; puz_arr[i-1][j+k]==&amp;#039; &amp;#039; &amp;amp;amp;&amp;amp;amp; puz_arr[i+1][j+k]==&amp;#039; &amp;#039;)	//빈 공간의 오른쪽으로 단어가 들어갈 충분한 넓이가 되는지 확인&lt;br /&gt;
 								continue;&lt;br /&gt;
 							else&lt;br /&gt;
 								break;&lt;br /&gt;
 						}&lt;br /&gt;
 &lt;br /&gt;
 						if(k==word_len+3)	//만약 충분한 공간이 남아있다면,&lt;br /&gt;
 						{&lt;br /&gt;
 							for(n=0;n&amp;amp;lt;word_len;n++)&lt;br /&gt;
 									puz_arr[i][j+n+3] = input_word[word_num][n];	//단어를 오른쪽으로 입력&lt;br /&gt;
 							return;&lt;br /&gt;
 						}&lt;br /&gt;
 						else&lt;br /&gt;
 							continue;	//그렇지 않다면 계속 찾는다.&lt;br /&gt;
 					}&lt;br /&gt;
 &lt;br /&gt;
 				}&lt;br /&gt;
 &lt;br /&gt;
 			}&lt;br /&gt;
 &lt;br /&gt;
 			if(i==16 &amp;amp;amp;&amp;amp;amp; j==41)	//그래도 넣을 자리를 찾지 못한 경우,&lt;br /&gt;
 			{&lt;br /&gt;
 				printf(&amp;quot;단어를 넣을 자리가 없습니다. 다른 단어를 입력해주세요.\n&amp;quot;);&lt;br /&gt;
 				return;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void order_word(int word_num)&lt;br /&gt;
 {&lt;br /&gt;
 	int i,j;&lt;br /&gt;
 	char temp[15];&lt;br /&gt;
 &lt;br /&gt;
 	for(i=0;i&amp;amp;lt;word_num;i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		for(j=0;j&amp;amp;lt;word_num-i-1;j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if(strcmp(input_word[j],input_word[j+1])&amp;amp;gt;0)&lt;br /&gt;
 			{&lt;br /&gt;
 				strcpy(temp,input_word[j]);&lt;br /&gt;
 				strcpy(input_word[j],input_word[j+1]);&lt;br /&gt;
 				strcpy(input_word[j+1],temp);&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}	//버블정렬 알고리즘&lt;br /&gt;
 }&lt;br /&gt;
-----&lt;br /&gt;
[[최다인]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;miura0806</name></author>
	</entry>
</feed>