본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 29 - 중앙값 구하기 )

728x90
# 문제

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



# 답안 

// 1. 입력: array -> 정수 배열 [-1,2,3] 같은거
// 2. 출력: 중앙값

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



# 인사이트 

// 1. 오름차순으로 정렬하기 위해 sort를 사용한다.
// 2. 오름차순으로 정렬된 array에서 중앙값을 구해야한다. 
// 3. 중앙값에 해당하는 index는 array의 길이에 나누기 2를 한 다음, 내림을 한 값과 같다. 
      ex. 길이가 7이면 7/2 하면 3.5 이고, 내림하면 3임. 인덱스 3인 값, 즉 배열에서 4번째 값에 해당하는 것.
// 4. 참고로, sort() 메서드를 호출한 후에 바로 대괄호([])를 사용하여 배열의 요소에 접근할 수 있다! (처음 알게 된 사실)

// 예컨대 array = [1,4,3,2,7,6,5] 이면, sort 사용해서 정렬하면 [1,2,3,4,5,6,7]이 되고,
// [1,2,3,4,5,6,7][3] 하면, 4가 반환된다.
728x90