문제
https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/
풀이
- 두 수의 평균은 두 수 중 작은 수보다 크거나 같다(같은 경우는 두 수가 같을 때)
- 이를 3개 이상의 N개의 수가 있다고 할 때 두 그룹으로 나눈다면 N개의 수의 평균은 두 그룹 중 합이 작은 것 보다 무조건 크기 때문에 N이 4개인 것이 답이 될 수 없다.
- 2개, 3개인 경우일 때 최소이므로 이 경우만 다 구해보면 답을 구할 수 있다.
코드
function solution(A) {
let minAvg = (A[0] + A[1]) / 2;
let minIdx = 0;
for(let i=2;i<A.length;++i) {
let avg = (A[i-2] + A[i-1] + A[i]) / 3;
if(minAvg > avg) {
minAvg = avg;
minIdx = i-2;
}
avg = (A[i-1] + A[i]) / 2;
if(minAvg > avg) {
minAvg = avg;
minIdx = i-1;
}
}
return minIdx;
}
'알고리즘' 카테고리의 다른 글
백준 9184 신나는 함수실행 javascript (0) | 2021.01.15 |
---|---|
[백준] 1913 달팽이 javascript (1) | 2021.01.12 |
[백준] 5052 전화번호 목록 javascript (0) | 2021.01.11 |
[HackerRank] New Year Chaos (0) | 2021.01.08 |
[프로그래머스] 뉴스클러스터링 (0) | 2021.01.07 |