메모장 입니다2
codility] MinAvgTwoSlice 본문
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 |