Frontend Developer

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

문제

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

정답

function solution(array) {
    return array.sort((a,b) => b -a)[(array.length - 1) / 2];
}
  • array.sort((a, b) => b - a) : 배열 array를 내림차순으로 정렬합니다. sort() 메서드의 콜백 함수를 통해 비교 함수를 제공하고, 여기서는 b - a를 사용하여 내림차순 정렬을 수행합니다.
    • b - a: b가 a보다 크면 양수, 작으면 음수, 같으면 0이 되므로 내림차순으로 정렬됩니다.
  • [(array.length - 1) / 2] : 정렬된 배열에서 중앙 인덱스에 해당하는 값을 가져옵니다. 배열의 길이에서 1을 뺀 값에 2를 나누어 중앙 인덱스를 계산합니다.
    • 예를 들어, 배열의 길이가 5라면 중앙 인덱스는 (5 - 1) / 2 = 2가 됩니다.
  • return array\[(array.length - 1) / 2\]; : 중앙값에 해당하는 값을 반환합니다.