<?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=Doublets%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD</id>
	<title>Doublets/문보창 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Doublets%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Doublets/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;action=history"/>
	<updated>2026-05-14T21:21:01Z</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=Doublets/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=31426&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Doublets/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=31426&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:09Z</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;==== 소감 ====&lt;br /&gt;
아직 나에게 벅찬 난이도다. 나중에 다시 생각해보자.&lt;br /&gt;
==== 코드 ====&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 #include &amp;amp;lt;cstring&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 struct Node&lt;br /&gt;
 {&lt;br /&gt;
 	Node * front;&lt;br /&gt;
 	char * data;&lt;br /&gt;
 	struct Node * next;&lt;br /&gt;
 };&lt;br /&gt;
 	&lt;br /&gt;
 void inDictionary(Node &amp;amp;amp; dic);&lt;br /&gt;
 void inWords(Node &amp;amp;amp; word);&lt;br /&gt;
 void enNode(Node &amp;amp;amp; node, int type = 1);&lt;br /&gt;
 void isDoublet(Node &amp;amp;amp; dic, Node &amp;amp;amp; word);&lt;br /&gt;
 void showDoublet(Node * dou);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	Node dictionary;&lt;br /&gt;
 	Node words;&lt;br /&gt;
 &lt;br /&gt;
 	inDictionary(dictionary);&lt;br /&gt;
 	inWords(words);&lt;br /&gt;
 	isDoublet(dictionary, words);&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void inDictionary(Node &amp;amp;amp; dic)&lt;br /&gt;
 {&lt;br /&gt;
 	enNode(dic);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void inWords(Node &amp;amp;amp; word)&lt;br /&gt;
 {&lt;br /&gt;
 	enNode(word, 2);	&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void enNode(Node &amp;amp;amp; node, int type)&lt;br /&gt;
 {&lt;br /&gt;
 	char word[17];&lt;br /&gt;
 	node.front = NULL;&lt;br /&gt;
 	int count = 0;&lt;br /&gt;
 	while (cin.peek() != &amp;#039;\n&amp;#039;)&lt;br /&gt;
 	{ &lt;br /&gt;
 		if (type == 1)&lt;br /&gt;
 			cin.getline(word, 17, &amp;#039;\n&amp;#039;);&lt;br /&gt;
 		if (type == 2)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (count % 2 == 0)&lt;br /&gt;
 				cin.getline(word, 17, &amp;#039; &amp;#039;);&lt;br /&gt;
 			else &lt;br /&gt;
 				cin.getline(word, 17, &amp;#039;\n&amp;#039;);&lt;br /&gt;
 			count++;&lt;br /&gt;
 		}&lt;br /&gt;
 		int len = strlen(word);&lt;br /&gt;
 		&lt;br /&gt;
 		Node * temp = new Node;&lt;br /&gt;
 		temp-&amp;amp;gt;data = new char[len + 1];&lt;br /&gt;
 		strcpy(temp-&amp;amp;gt;data, word);&lt;br /&gt;
 		temp-&amp;amp;gt;next = NULL;&lt;br /&gt;
 		&lt;br /&gt;
 		if (node.front == NULL)&lt;br /&gt;
 		{&lt;br /&gt;
 			node.front = temp;&lt;br /&gt;
 			node.next = node.front;&lt;br /&gt;
 		}&lt;br /&gt;
 		else&lt;br /&gt;
 		{&lt;br /&gt;
 			node.next-&amp;amp;gt;next = temp;&lt;br /&gt;
 			node.next = node.next-&amp;amp;gt;next;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	cin.get();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void isDoublet(Node &amp;amp;amp; dic, Node &amp;amp;amp; word)&lt;br /&gt;
 {&lt;br /&gt;
 	word.next = word.front;&lt;br /&gt;
 	char formerWord[17] = &amp;quot;None&amp;quot;;&lt;br /&gt;
 	char first[17], second[17];&lt;br /&gt;
 &lt;br /&gt;
 	while(word.next != NULL)&lt;br /&gt;
 	{&lt;br /&gt;
 		strcpy(first, word.next-&amp;amp;gt;data);&lt;br /&gt;
 		word.next = word.next-&amp;amp;gt;next;&lt;br /&gt;
 		strcpy(second, word.next-&amp;amp;gt;data);&lt;br /&gt;
 		word.next = word.next-&amp;amp;gt;next;&lt;br /&gt;
 		dic.next = dic.front;&lt;br /&gt;
 		&lt;br /&gt;
 		Node * doublet = new Node;&lt;br /&gt;
 		doublet-&amp;amp;gt;front = NULL;&lt;br /&gt;
 		Node * temp = new Node;&lt;br /&gt;
 		temp-&amp;amp;gt;data = new char[strlen(first) + 1];&lt;br /&gt;
 		strcpy(temp-&amp;amp;gt;data, first);&lt;br /&gt;
 		temp-&amp;amp;gt;next = NULL;&lt;br /&gt;
 		doublet-&amp;amp;gt;front = temp;&lt;br /&gt;
 		doublet-&amp;amp;gt;next = doublet-&amp;amp;gt;front;&lt;br /&gt;
 		&lt;br /&gt;
 		while (true)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (dic.next == NULL)&lt;br /&gt;
 			{&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; &amp;quot;No solution.\n&amp;quot;;&lt;br /&gt;
 				break;&lt;br /&gt;
 			}&lt;br /&gt;
 			if (strcmp(first, second) == 0)&lt;br /&gt;
 			{&lt;br /&gt;
 				showDoublet(doublet);&lt;br /&gt;
 				break;&lt;br /&gt;
 			}&lt;br /&gt;
 &lt;br /&gt;
 			int gap = 0;&lt;br /&gt;
 			for (int i=0; i&amp;amp;lt;strlen(first); i++)&lt;br /&gt;
 			{&lt;br /&gt;
 				if (strlen(first) != strlen(dic.next-&amp;amp;gt;data))&lt;br /&gt;
 				{&lt;br /&gt;
 					gap--;&lt;br /&gt;
 					break;&lt;br /&gt;
 				}&lt;br /&gt;
 				if (first[i] != dic.next-&amp;amp;gt;data[i])&lt;br /&gt;
 					gap++;&lt;br /&gt;
 				if (gap &amp;amp;gt; 1)&lt;br /&gt;
 					break;&lt;br /&gt;
 			}&lt;br /&gt;
 			if (gap == 1 &amp;amp;amp;&amp;amp;amp; strcmp(formerWord, dic.next-&amp;amp;gt;data) != 0)&lt;br /&gt;
 			{&lt;br /&gt;
 				Node * temp = new Node;&lt;br /&gt;
 				temp-&amp;amp;gt;data = new char[strlen(first) + 1];&lt;br /&gt;
 				strcpy(temp-&amp;amp;gt;data, dic.next-&amp;amp;gt;data);&lt;br /&gt;
 				temp-&amp;amp;gt;next = NULL;&lt;br /&gt;
 				doublet-&amp;amp;gt;next-&amp;amp;gt;next = temp;&lt;br /&gt;
 				doublet-&amp;amp;gt;next = doublet-&amp;amp;gt;next-&amp;amp;gt;next;&lt;br /&gt;
 				strcpy(formerWord, first);&lt;br /&gt;
 				strcpy(first, dic.next-&amp;amp;gt;data);				&lt;br /&gt;
 				dic.next = dic.front;&lt;br /&gt;
 			}			&lt;br /&gt;
 			else&lt;br /&gt;
 				dic.next = dic.next-&amp;amp;gt;next;&lt;br /&gt;
 		}&lt;br /&gt;
 		delete temp, doublet;&lt;br /&gt;
 		if (word.next != NULL)&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void showDoublet(Node * dou)&lt;br /&gt;
 {&lt;br /&gt;
 	dou-&amp;amp;gt;next = dou-&amp;amp;gt;front;&lt;br /&gt;
 	while (dou-&amp;amp;gt;next != NULL)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; dou-&amp;amp;gt;next-&amp;amp;gt;data &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		dou-&amp;amp;gt;next = dou-&amp;amp;gt;next-&amp;amp;gt;next;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
[[Doublets]] [[문보창]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>