function solution(A) {
// write your code in JavaScript (Node.js 8.9.4)
const N = A.length;
let minAvg = (A[0] + A[1]) / 2;
let minIndex = 0;
let avg = 0;
for(let i=2; i<N; i++){
avg = (A[i-2] + A[i-1] + A[i]) / 3;
if(avg < minAvg){
minAvg = avg;
minIndex = i-2;
}
avg = (A[i-1] + A[i]) / 2;
if(avg < minAvg){
minAvg = avg;
minIndex = i-1;
}
}
return minIndex;
}
2가지 케이스만 고려하면 된다.
평균의 성질로 부분집합의 평균은 가장 작은 인자보다 항상 크다.
평균들의 평균은 각 인자들의 평균과 같다.
3개의 인자를 고려하는 것은 2개의 부분집합으로는 3개의 부분집합을 구할 수 없기 때문이다.
def solution(A):
# write your code in Python 3.6
min_value = sum(A[0:2])/2
min_index = 0
for i in range(len(A)):
try:
if min_value > (A[1+i] + A[i])/2:
min_value = (A[1+i]+A[i])/2
min_index = i
if min_value > (A[2+i] + A[1+i] + A[i])/3:
min_value = (A[2+i] + A[1+i] + A[i])/3
min_index = i
except:
break
return min_index