기업에 투자할 경우 최댓값을 구하는 알고리즘 인데요
야미
질문 제목 : 질문 내용 :
돈 기업0 기업1 기업2 주어진 돈 : 3
13 2 4
254 5
3 86 7
위 숫자 1,2,3은 기업[i]에다가 j(j0 && j4) 만원을 투자할 때, 최대가 되는 방법을 묻는 문제입니다.
한 기업에다가 몰아서 투자할 수 도 있고, 기업0에는 1, 기업2에는 2 같이 분산해서 투자할 수 도 있습니다.
그리고 주어진 돈과, 기업의 수, 그리고 투자시 얻을 수 있는 금액은 프로그래머가 정할 수 있어야 합니다.
제가 구현한 코드는,
int corporate[m][n]; // m은 기업의 수, n은 기업별 투자 금액이 됩니다.
int investment_max(int arr[], int num_corporate, int money, int pre){
int i, compare;
if(money-pre0)
return 0;
compare=arr[0][pre];
for(i=1; inum_corporate; i++)
compare=max(compare,arr[i][pre]);
if( money - pre == 1 || money - pre == 0 )
return compare;
return compare+investment_max(arr,corporate,money,money-pre);
}
int calculate_return(int arr[], int corporate, int money){
int i,j,sum;
sum=investment_max(arr,corporate,money,money);
for(i=1; imoney-1; i++)
sum=max(sum,investment_max(arr,corporate,money,i);
return sum;
}
첫번째 함수는 두번째 함수를 위한 그냥 도구정도로 생각해 주시면 됩니다.
이 알고리즘에 오류가 있을까요? 만약에 맞더라도 문제점 이라던가 논리적으로 맞지 않다던가 하는게 있을까요?
컴파일도 못하고 답안지도 없으니 참 어렵네요 -_-.;;
-
사지타리우스
군대에있는데 왜 컴파일을 못하나요?
-
아연
제가 군대에 있어서 컴파일을 못해요 .. 도와주세요 ㅜㅜ