<?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=LC-Display%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD</id>
	<title>LC-Display/문보창 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=LC-Display%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=LC-Display/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;action=history"/>
	<updated>2026-05-14T23:26:43Z</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=LC-Display/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=34049&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=LC-Display/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=34049&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:36Z</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;
2005/02/19 Accepted 0:00.309 476 &lt;br /&gt;
쉽게 생각하고, 구상을 하지 않고 바로 코딩을 한 후유증을 여실히 보여준다. 수행시간이나 메모리사용이 만족스럽지 못하고, 코드또한 가독성이 떨어진다. 추후 리펙토링이 필요하다.&lt;br /&gt;
&lt;br /&gt;
==== 코드 ====&lt;br /&gt;
 // no706 - LCD Display&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;  &lt;br /&gt;
 #include &amp;amp;lt;cstdlib&amp;amp;gt;  &lt;br /&gt;
 #include &amp;amp;lt;cstring&amp;amp;gt;  &lt;br /&gt;
 using namespace std;  &lt;br /&gt;
 &lt;br /&gt;
 const int MAX_LINE = 2000;                      // test case의 수  &lt;br /&gt;
 const int MAX_ROW = 23;  &lt;br /&gt;
 const int MAX_COL = 103;  &lt;br /&gt;
 &lt;br /&gt;
 struct Digit            // 숫자  &lt;br /&gt;
 {  &lt;br /&gt;
 	int size;           // 크기  &lt;br /&gt;
 	char num[9];        // 수  &lt;br /&gt;
 };  &lt;br /&gt;
 &lt;br /&gt;
 int inAnaloge(Digit * d);  &lt;br /&gt;
 void makeDisplay(Digit * d, const int line);  &lt;br /&gt;
 void showDisplay(char pd[][MAX_COL], int row, int index);  &lt;br /&gt;
 void toDigital(char pd[][MAX_COL], int row, int col, int index, char c);  &lt;br /&gt;
 &lt;br /&gt;
 int main()  &lt;br /&gt;
 {  &lt;br /&gt;
 	Digit digits[MAX_LINE];          // 입력받을 Analoge 숫자  &lt;br /&gt;
 	int line = inAnaloge(digits);    // 처리해야 될 줄 수  &lt;br /&gt;
 	makeDisplay(digits, line);  &lt;br /&gt;
 	return 0;  &lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
 int inAnaloge(Digit * d)  &lt;br /&gt;
 {  &lt;br /&gt;
 	int count = 0;  &lt;br /&gt;
 	int size;  &lt;br /&gt;
 	char str[9];  &lt;br /&gt;
 	while(cin &amp;amp;gt;&amp;amp;gt; size &amp;amp;gt;&amp;amp;gt; str)  &lt;br /&gt;
 	{  &lt;br /&gt;
 		int n = atoi(str);  &lt;br /&gt;
 		if (size == 0)  &lt;br /&gt;
 			break;  &lt;br /&gt;
 		strcpy(d[count].num, str); &lt;br /&gt;
 		d[count].size = size;  &lt;br /&gt;
 		count++;  &lt;br /&gt;
 	}  &lt;br /&gt;
 	return count;  &lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
 void makeDisplay(Digit * d, const int line)  &lt;br /&gt;
 {  &lt;br /&gt;
 	char display[MAX_ROW][MAX_COL];      // display에 담길 Digital 숫자  &lt;br /&gt;
 	int i, j, k;  	&lt;br /&gt;
 	int row, col;  &lt;br /&gt;
 	int index;       &lt;br /&gt;
 	for (i=0; i&amp;amp;lt;line; i++)  &lt;br /&gt;
 	{  &lt;br /&gt;
 		row = 2 * d[i].size + 3;  &lt;br /&gt;
 		col = d[i].size + 2;  &lt;br /&gt;
 		&lt;br /&gt;
 		for (j=0; j&amp;amp;lt;MAX_ROW; j++)         // 공백으로 초기화  &lt;br /&gt;
 		{  &lt;br /&gt;
 			for (k=0; k&amp;amp;lt;MAX_COL; k++)  &lt;br /&gt;
 				display[j][k] = &amp;#039; &amp;#039;;  &lt;br /&gt;
 		}                &lt;br /&gt;
 		for (j=0; j&amp;amp;lt;9; j++)  &lt;br /&gt;
 		{  &lt;br /&gt;
 			if (d[i].num[j] != &amp;#039;&amp;#039;)  &lt;br /&gt;
 				toDigital(display, row, col, j, d[i].num[j]);  &lt;br /&gt;
 			else break;  &lt;br /&gt;
 		}                &lt;br /&gt;
 		index = col * j + (j - 1);  &lt;br /&gt;
 		showDisplay(display, row, index);  &lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;  &lt;br /&gt;
 	}  &lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
 void showDisplay(char pd[][MAX_COL], int row, int index)  &lt;br /&gt;
 {  &lt;br /&gt;
 	int i, j;  &lt;br /&gt;
 	for (i=0; i&amp;amp;lt;row; i++)  &lt;br /&gt;
 	{ &lt;br /&gt;
 		for (j=0; j&amp;amp;lt;index; j++)  &lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; pd[i][j];   &lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;  &lt;br /&gt;
 	}  &lt;br /&gt;
 }  &lt;br /&gt;
 &lt;br /&gt;
 void toDigital(char pd[][MAX_COL], int row, int col, int index, char c)  &lt;br /&gt;
 {  &lt;br /&gt;
 	int i;  &lt;br /&gt;
 	int s = col - 2;  &lt;br /&gt;
 	int start = index * col + index;  &lt;br /&gt;
 	int end = start + col - 1;       &lt;br /&gt;
 	bool m1 = false, m2 = false, m3 = false;  &lt;br /&gt;
 	bool l1 = false, l2 = false, l3 = false;  &lt;br /&gt;
 	bool r1 = false, r2 = false, r3 = false;  &lt;br /&gt;
 	switch(c)  &lt;br /&gt;
 	{  &lt;br /&gt;
 	case &amp;#039;0&amp;#039;:  &lt;br /&gt;
 		l1 = l2 = m1 = m3 = r1 = r2 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;1&amp;#039;:  &lt;br /&gt;
 		r1 = r2 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;2&amp;#039;:  &lt;br /&gt;
 		m1 = r1 = m2 = l2 = m3 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;3&amp;#039;:  &lt;br /&gt;
 		m1 = r1 = m2 = r2 = m3 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;4&amp;#039;:  &lt;br /&gt;
 		l1 = m2 = r1 = r2 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;5&amp;#039;:  &lt;br /&gt;
 		m1 = l1 = m2 = r2 = m3 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;6&amp;#039;:  &lt;br /&gt;
 		m1 = l1 = m2 = l2 = m3 = r2 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;7&amp;#039;:  &lt;br /&gt;
 		m1 = r1 = r2 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;8&amp;#039;:  &lt;br /&gt;
 		l1 = l2 = r1 = r2 = m1 = m2 = m3 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	case &amp;#039;9&amp;#039;:  &lt;br /&gt;
 		m1 = l1 = m2 = r1 = r2 = m3 = true;  &lt;br /&gt;
 		break;  &lt;br /&gt;
 	}        &lt;br /&gt;
 	if (m1 || m2 || m3) &lt;br /&gt;
 	{ &lt;br /&gt;
 		for (i = start+1; i &amp;amp;lt; end; i++)  &lt;br /&gt;
 		{ &lt;br /&gt;
 			if (m1) pd[0][i] = &amp;#039;-&amp;#039;;  &lt;br /&gt;
 			if (m2) pd[s+1][i] = &amp;#039;-&amp;#039;;  &lt;br /&gt;
 			if (m3) pd[2*s+2][i] = &amp;#039;-&amp;#039;;  &lt;br /&gt;
 		} &lt;br /&gt;
 	} &lt;br /&gt;
 	if (l1 || r1)  &lt;br /&gt;
 	{  &lt;br /&gt;
 		for (i = 1; i &amp;amp;lt; s + 1; i++)  &lt;br /&gt;
 		{ &lt;br /&gt;
 			if (l1) pd[i][start] = &amp;#039;|&amp;#039;;  &lt;br /&gt;
 			if (r1) pd[i][start+s+1] = &amp;#039;|&amp;#039;;  &lt;br /&gt;
 		} &lt;br /&gt;
 	}  &lt;br /&gt;
 	if (l2 || r2)  &lt;br /&gt;
 	{  &lt;br /&gt;
 		for (i = s + 2; i &amp;amp;lt; 2 * s + 2; i++)  &lt;br /&gt;
 		{ &lt;br /&gt;
 			if (l2) pd[i][start] = &amp;#039;|&amp;#039;;  &lt;br /&gt;
 			if (r2) pd[i][start+s+1] = &amp;#039;|&amp;#039;;  &lt;br /&gt;
 		} &lt;br /&gt;
 	}  &lt;br /&gt;
 } &lt;br /&gt;
----&lt;br /&gt;
[[LC-Display]] [[문보창]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>