• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

이렇게 해도 되나요?

22.01.03 22:30 작성 조회수 179

0

간단하게 보여드리기 위해

변수랑 숫자는 문제 그대로를 사용했습니다

arr배열에 1~9까지를 누적 합계를 사용하여 

total/m 과 가장 차이가 나지 않는 부분에 도달하면

분리시킬 수 있도록 만들어봤는데

이렇게 해도 되나요?

 

#include <iostream>
 #include <math.h>
 
using namespace std;

int arr[9]={1,3,6,10,15,21,28,36,45};

int main(){
	int m=3;
	int totalmax=0;
	int total=45;
	int lt=0,rt=8;
	int d=0;
	int min=0;
	while(lt<=rt){
		int idx=0;
		min=21000000;
		
		for(int i=lt;i<=rt;i++){
			
			arr[i]=arr[i]-d;
			cout<<i<<"arr:" << arr[i]<<endl;
			if(min > abs((total/m) - arr[i])){
				min=abs((total/m) - arr[i]);
				idx=i;
				
			}
		}
		d=arr[idx];
		cout << "d:"<<d<<endl;
		
		if(totalmax < arr[idx]){
			totalmax=arr[idx];

		}
		lt=idx+1;
		
		
	}
	
	cout << totalmax;
	
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

채점폴더를 드렸으니 채점받을 수 있는 코드로 구현해서 한 번 채점을 해보시기 바랍니다.