메모장 입니다2

codility] MinAvgTwoSlice 본문

Study/Programming

codility] MinAvgTwoSlice

Wooum@n 2017. 11. 7. 16:40

1. 문제 설명



For example, array A such that:

A[0] = 4 A[1] = 2 A[2] = 2 A[3] = 5 A[4] = 1 A[5] = 5 A[6] = 8

contains the following example slices:

  • slice (1, 2), whose average is (2 + 2) / 2 = 2;
  • slice (3, 4), whose average is (5 + 1) / 2 = 3;
  • slice (1, 4), whose average is (2 + 2 + 5 + 1) / 4 = 2.5.

The goal is to find the starting position of a slice whose average is minimal.

-평균값은 소수까지 구해서 비교되는 것 주의.



 >2개의 평균값이 최소 평균이다.

>>배열 요소가 양수일 경우에만


 >음수로 범위를 넓히면 2개 또는 3개가 최소 평균이 된다.

>>3개가 최소가 되는 원리는 모르겠다.



2.소스

int solution(vector<int> &A) { // write your code in C++14 (g++ 6.2.0) double little = 999; int little_index = 0; int size = A.size(); for(int i = 0; i< (size - 1); i++) { double avg = (A.at(i) + A.at(i+1))/2.0; if(avg < little) { little = avg; little_index = i; } } for(int i = 0; i< (size - 2); i++) { double avg = (A.at(i) + A.at(i+1) + A.at(i+2))/3.0; if(avg < little) { little = avg; little_index = i; } } return little_index; }



https://codility.com/demo/results/trainingZM6WHZ-3V7/

'Study > Programming' 카테고리의 다른 글

codility] GenomicRangeQuery  (0) 2017.11.10
codility] Distinct  (0) 2017.11.10
codility] CountDiv  (0) 2017.11.07
codility] MissingInteger  (0) 2017.11.02
codility] PermMissingElem  (0) 2017.11.01