[IT]/[코테]

[프로그래머스 코딩테스트 입문][JS] 중앙값 구하기

@Ain 2024. 1. 11. 00:23
반응형

중앙값 구하기

문제 설명

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


제한사항

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

입출력 예

array result

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

⇒ 중앙값을 구하기 위해서는

1. 배열의 중앙(중앙에 있는 index)값 찾기

  • 배열의 길이가 3인 경우
    • 해당 배열의 index는 0, 1, 2를 갖고 있으므로 우리가 원하는 index 값은 1이다.
    • 3을 2로 나눴을 때 1.5이므로 정수 부분인 1을 얻어야 한다.
  • 배열의 길이가 5인 경우
    • 해당 배열의 index는 0, 1, 2, 3, 4를 갖고 있으므로 우리가 원하는 index 값은 2이다.
    • 5를 2로 나눴을 때 2.5이므로 정수 부분인 2를 얻어야 한다.
  • 배열의 길이가 (2n+1)인 경우
    • 해당 배열의 길이는 0, 1, 2, ... 2n-2, 2n-1, 2n이므로 우리가 원하는 index의 값은 n이다.
    • 2n+1을 2로 나눴을 때 n.xx이므로 정수 부분인 n을 얻어야한다.
  • 따라서 Math.floor() 혹은 Math.trunc() 메서드를 사용하여 정수 부분만 취한다.

2. 배열을 오름차순으로 정렬하기

  • sort() 메서드를 사용한다.
반응형
function solution(array) {
  return array.sort((a, b) => a - b)[Math.floor(array.length / 2)];
}
반응형