logo
Posts프로그래머스중앙값 구하기

중앙값 구하기

문제 설명

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

제한 사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • 1,000 < array의 원소 < 1,000

입출력 예

arrayresult
[1, 2, 7, 10, 11]7
[9, -1, 0]0

입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

문제풀이 (나)

function solution(array) {
    array.sort((a, b) => a - b);
    return array[(array.length - 1) / 2];
}

이 문제의 포인트는 두 가지다.

배열을 오름차순 정렬 (내림차순 정렬도 상관은 없다)

그리고 배열 길이가 홀수인 배열의 중앙값 구하기 이다.

문제풀이 (다른사람)

function solution(array) {
  return array.sort((a, b) => a - b)[Math.floor(array.length / 2)];
}

나와 비슷하게 풀었다.

다만 다른 점은, 나는 sort하고 배열 값 가져오는 것이 동시에 안될 것이라고 생각했었는데, 동시에 된다는 점이다.

이 소스가 더 효율적인 것 같다.

레퍼런스