개발 기록 남기기✍️

[프로그래머스] 중앙값 구하기 본문

코딩 테스트 연습

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

너해동물원 2022. 12. 23. 09:13

🗒️ 문제 설명

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 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

 


❇️ 나의 풀이

  • 배열을 오름차순으로 sort한다. 이때, 유니코드 문자열로 인식해 앞에 있는 숫자만 보고 인식하므로 sort 내에 매개변수 함수를 만들어준다.
  • 모든 배열의 길이는 홀수이므로 (배열의 길이 - 1) / 2를 하면 중앙값의 인덱스가 나온다.
  • 해당 인덱스의 값을 반환한다.
function solution(array) {
    var newArr = array.sort((a,b)=>a-b);
    return newArr[((array.length - 1) / 2)];
}

 

✍️ 리뷰

✔️ 다른 사람의 풀이를 보니 배열의 길이 - 1을 하기 보다 배열의 길이 / 2 한 값을 Math.floor 처리를 했다. (나눗셈 몫 처리)

✔️ 사실 대부분의 사람들이 그랬다.. ^___^ 직접 연산하기보다 이를 대체할 함수가 있는지 확인해볼 것!