본문 바로가기

알고리즘 공부 및 문제 풀이/백준(BOJ)

[기출 하] 단순 계산기

[문제]

두 수의 평균만 구할 수 있는 단순계산기가 있다. 처음에는 두 점수를 목록에서 선택해 두 점수의 평균을 구한다.(선택된 점수는 목록에서 제거된다.) 이후 목록에 남아있는 점수들 중 하나를 선택해 앞서 구한 평균과의 평균을 새롭게 구한다. 목록에 점수가 모두 없어질 때까지 위의 과정을 반복 할 때, 가장 큰 평균값을 구할 수 있는 프로그램을 작성하시오. 

 

[코드]

float solution(int num_arr[], int n){
	float sol; //가장 큰 평균값
	sort(num_arr, num_arr+n);
	sol = (num_arr[0]+num_arr[1])/2.0;
	for(int i=2; i<n; i++){
			sol = (sol+num_arr[i])/2.0;
	}

	return sol;
}