U E D R , A S I H C RSS

Ecological Bin Packing/김회영

김회영

~cpp 
//2. 재활용 용기 저장문제 
//기본 아이디어
//--->재활용 통의 병의 갯수를 우선 모두 더한다. total변수에 넣는다.
//--->각각의 재활용 통에서 서로 다른색깔의 병을 모두뺏을때의 조합이 
//가장 큰 수인 조합을 찾아낸다. max()함수를 통해 리턴값을 얻는다.  

#include<iostream>
using namespace std;

int container[9]; //용기에 들어있는 병을 입력 받는다.
int total=0;      //용기에 들어있는 병의 총개수를 센다.
int ch_number;    //최소 이동 횟수를 저장한다.
char bgc[3]={'B','G','C'};
char save[4]={"NNN"}; //나중에 결과값을 출력시 사용 

int max(int* array);
void main()
{
	cout<<"용기에 담겨 있는 병의 개수를 차례대로 넣으세요"<<endl;
	for(int i=0 ; i<9 ; i++)
	{
		cin>>container[i];
		total+=container[i];
	}
	ch_number = total - max(container);
	cout<<endl;
	cout<<save<<"  "<<ch_number;
	cout<<endl;
}

int max(int* array) 
{

int temp=0;//각각의 조합에 대한 현재값을 저장한다.
int max=0; //여러 조합에 대해 가장 큰 값을 저장한다.

for(int i=0 ; i<3 ; i++)
{
	for(int j=3 ; j<6 ; j++)	
	{
		if(j%3 == i)
			continue;
		else
		{
			temp+=array[i];
			temp+=array[j];
			temp+=array[12-(i+j)];
		}
		
		if(temp > max)
		{
			max=temp;
			save[0]=bgc[i];
			save[1]=bgc[(j%3)];
			save[2]=bgc[3-((j%3)+i)];
		}
		temp=0;
	}	
}

    return max;
}

태클

전역변수가 많다 --강희경
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:10
Processing time 0.0218 sec