<?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=TugOfWar%2F%EA%B9%80%ED%9A%8C%EC%98%81</id>
	<title>TugOfWar/김회영 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=TugOfWar%2F%EA%B9%80%ED%9A%8C%EC%98%81"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TugOfWar/%EA%B9%80%ED%9A%8C%EC%98%81&amp;action=history"/>
	<updated>2026-05-15T00:49:30Z</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=TugOfWar/%EA%B9%80%ED%9A%8C%EC%98%81&amp;diff=39783&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TugOfWar/%EA%B9%80%ED%9A%8C%EC%98%81&amp;diff=39783&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:17Z</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;
 #include&amp;amp;lt;iostream.h&amp;amp;gt; &lt;br /&gt;
 //using namespace std; &lt;br /&gt;
  &lt;br /&gt;
 bool changeTwoPart(int* right,int* left,int gap,int nPeople); &lt;br /&gt;
 void changeTwoElement(int* rightPart,int i,int* leftPart,int j); &lt;br /&gt;
 void sort(int* array,int count); &lt;br /&gt;
  &lt;br /&gt;
 void main() &lt;br /&gt;
 { &lt;br /&gt;
         &lt;br /&gt;
 		int nCount;&lt;br /&gt;
 		cin&amp;amp;gt;&amp;amp;gt;nCount;&lt;br /&gt;
 	&lt;br /&gt;
 		int nPeople; &lt;br /&gt;
 		int* nWeightOfPeople; &lt;br /&gt;
 		int* leftPart;&lt;br /&gt;
 		int* rightPart;&lt;br /&gt;
 		&lt;br /&gt;
 		int rightTotal=0; &lt;br /&gt;
         int leftTotal=0; &lt;br /&gt;
 		&lt;br /&gt;
 		int* rightOfTotal=new int[nCount];&lt;br /&gt;
 		int* leftOfTotal=new int[nCount];&lt;br /&gt;
 &lt;br /&gt;
 		for(int k=0;k&amp;amp;lt;nCount;k++)&lt;br /&gt;
 		{&lt;br /&gt;
 			cin.get();&lt;br /&gt;
 			cin&amp;amp;gt;&amp;amp;gt;nPeople; &lt;br /&gt;
 			&lt;br /&gt;
 			if(nPeople%2==1) &lt;br /&gt;
 			{        &lt;br /&gt;
 					nPeople++; &lt;br /&gt;
 					nWeightOfPeople=new int[nPeople]; &lt;br /&gt;
 					for(int a=0;a&amp;amp;lt;nPeople-1;a++) &lt;br /&gt;
 							cin&amp;amp;gt;&amp;amp;gt;nWeightOfPeople[a]; &lt;br /&gt;
 					nWeightOfPeople[nPeople-1]=0; &lt;br /&gt;
 			} &lt;br /&gt;
 			else &lt;br /&gt;
 			{ &lt;br /&gt;
 					nWeightOfPeople=new int[nPeople]; &lt;br /&gt;
 					for(int a=0;a&amp;amp;lt;nPeople;a++) &lt;br /&gt;
 							cin&amp;amp;gt;&amp;amp;gt;nWeightOfPeople[a]; &lt;br /&gt;
 			} &lt;br /&gt;
         &lt;br /&gt;
 			sort(nWeightOfPeople,nPeople); &lt;br /&gt;
           &lt;br /&gt;
 			leftPart=new int[nPeople/2]; &lt;br /&gt;
 			rightPart=new int[nPeople/2]; &lt;br /&gt;
          &lt;br /&gt;
 			leftTotal=0;&lt;br /&gt;
 			rightTotal=0;&lt;br /&gt;
          &lt;br /&gt;
 			for(int j=0;j&amp;amp;lt;nPeople;j++)       &lt;br /&gt;
 			{        &lt;br /&gt;
  &lt;br /&gt;
 					if(j&amp;amp;lt;nPeople/2) &lt;br /&gt;
 					{        &lt;br /&gt;
 							leftPart[j]=nWeightOfPeople[j]; &lt;br /&gt;
 							leftTotal+=leftPart[j]; &lt;br /&gt;
 					} &lt;br /&gt;
 					else &lt;br /&gt;
 					{        &lt;br /&gt;
 							rightPart[j-nPeople/2]=nWeightOfPeople[j]; &lt;br /&gt;
 							rightTotal+=rightPart[j-nPeople/2]; &lt;br /&gt;
 					} &lt;br /&gt;
 			} &lt;br /&gt;
          &lt;br /&gt;
 			while(changeTwoPart(rightPart,leftPart,rightTotal-leftTotal,nPeople)) &lt;br /&gt;
 			{ &lt;br /&gt;
 					leftTotal=0; &lt;br /&gt;
 					rightTotal=0; &lt;br /&gt;
  &lt;br /&gt;
 					for(int i=0;i&amp;amp;lt;nPeople/2;i++) &lt;br /&gt;
 							leftTotal+=leftPart[i]; &lt;br /&gt;
          &lt;br /&gt;
 					for(int j=0;j&amp;amp;lt;nPeople/2;j++) &lt;br /&gt;
 					rightTotal+=rightPart[j]; &lt;br /&gt;
                  &lt;br /&gt;
 			} &lt;br /&gt;
          &lt;br /&gt;
 			leftOfTotal[k]=leftTotal;&lt;br /&gt;
 			rightOfTotal[k]=rightTotal;&lt;br /&gt;
 			//cout&amp;amp;lt;&amp;amp;lt;endl&amp;amp;lt;&amp;amp;lt;leftTotal&amp;amp;lt;&amp;amp;lt;&amp;quot; &amp;quot;&amp;amp;lt;&amp;amp;lt;rightTotal&amp;amp;lt;&amp;amp;lt;endl; &lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		for(int j=0;j&amp;amp;lt;nCount;j++)&lt;br /&gt;
 			cout&amp;amp;lt;&amp;amp;lt;endl&amp;amp;lt;&amp;amp;lt;leftOfTotal[j]&amp;amp;lt;&amp;amp;lt;&amp;quot; &amp;quot;&amp;amp;lt;&amp;amp;lt;rightOfTotal[j];&lt;br /&gt;
 &lt;br /&gt;
 		cout&amp;amp;lt;&amp;amp;lt;endl;&lt;br /&gt;
 } &lt;br /&gt;
  &lt;br /&gt;
 bool changeTwoPart(int* right,int* left,int gap,int nPeople) &lt;br /&gt;
 { &lt;br /&gt;
          &lt;br /&gt;
         int nTempGap; &lt;br /&gt;
         int nMaxGap=0; &lt;br /&gt;
         int nMaxIndexI=0; &lt;br /&gt;
         int nMaxIndexJ=0; &lt;br /&gt;
  &lt;br /&gt;
         for(int i=0;i&amp;amp;lt;(nPeople/2);i++) &lt;br /&gt;
         {        &lt;br /&gt;
                 for(int j=0;j&amp;amp;lt;(nPeople/2);j++) &lt;br /&gt;
                 { &lt;br /&gt;
                         nTempGap= right[i] - left[j] ; &lt;br /&gt;
                         if(nTempGap*2 &amp;amp;lt;= gap &amp;amp;amp;&amp;amp;amp; nTempGap&amp;amp;gt;= 0 &amp;amp;amp;&amp;amp;amp; nTempGap&amp;amp;gt;nMaxGap) &lt;br /&gt;
                         {        &lt;br /&gt;
                                 nMaxGap=nTempGap; &lt;br /&gt;
                                 nMaxIndexI=i; &lt;br /&gt;
                                 nMaxIndexJ=j; &lt;br /&gt;
                         } &lt;br /&gt;
                 } &lt;br /&gt;
         } &lt;br /&gt;
          &lt;br /&gt;
         if(nMaxGap&amp;amp;gt;0) &lt;br /&gt;
         {        &lt;br /&gt;
                 changeTwoElement(right,nMaxIndexI,left,nMaxIndexJ); &lt;br /&gt;
                 return  true; &lt;br /&gt;
         } &lt;br /&gt;
         return false; &lt;br /&gt;
 } &lt;br /&gt;
  &lt;br /&gt;
 void changeTwoElement(int* rightPart,int i,int* leftPart,int j) &lt;br /&gt;
 { &lt;br /&gt;
         int temp; &lt;br /&gt;
         temp=rightPart[i]; &lt;br /&gt;
         rightPart[i]=leftPart[j]; &lt;br /&gt;
         leftPart[j]=temp; &lt;br /&gt;
  &lt;br /&gt;
 } &lt;br /&gt;
  &lt;br /&gt;
 //오름차순으로 정렬을 수행합니다. &lt;br /&gt;
 void sort(int* array,int count) &lt;br /&gt;
 {        &lt;br /&gt;
         for(int i=0;i&amp;amp;lt;count;i++) &lt;br /&gt;
                 for(int j=i;j&amp;amp;lt;count;j++) &lt;br /&gt;
                 { &lt;br /&gt;
                         if(array[i]&amp;amp;gt;array[j]) &lt;br /&gt;
                                 changeTwoElement(array,i,array,j); &lt;br /&gt;
                 } &lt;br /&gt;
 } &lt;br /&gt;
----&lt;br /&gt;
접근 방식이 굉장히 새로와서 놀랬어요~&amp;gt;__&amp;lt;ㅋ - [[이승한]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>