중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.
function solution(array) {
const middleIdx = parseInt(array.length / 2);
return array.sort(function(a, b) {
return a - b;
})[middleIdx];
}
mdn 문서를 살펴보면,
배열의 정렬
arr.sort([compareFunction])
은
compareFunction
이라는 정렬 순서를 지정하는 함수를 optional한 매개변수로 가질 수 있다.
단, 생략하면 배열은 각 요소를 문자열로 변환하고, 문자의 유니코드 포인트 값에 따라 정렬 된다.
따라서 매개변수를 생략하고 arr.sort()를 사용하게 되면
arr = [1, 8, 4, 10]
은 [1, 10, 4, 8]
로 정렬된다.
숫자의 오름차순, 내림차순을 위한 매개변수는 다음과 같다.
// 오름차순
function compareNumbers(a, b) {
return a - b;
}
// 내림차순
function compareNumbers(a, b) {
return b - a;
}