프로그래머스(JavaScript)/Lv0

[프로그래머스 : 코딩테스트 입문] Lv0. 중앙값 구하기 (JavaScript)

지미지민 2024. 2. 24. 07:07
문제 설명

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

 

제한사항
  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000
문제 풀이

array.sort((a,b) => a===b ? 0 : a>b? -1 : 1);

먼저 배열을 오름차순 정렬을 나타낸다. 이유는 중앙값을 구할려면 가운데 오는 것을 찾아야 하기 때문이다.

 

var middle_len = Math.floor((array.length) / 2);

여기서 조건이 배열의 길이가 홀수라고 했다. 그래서 Math.floor를 사용해서 몫만 가져오게 설정했다.
 

return array[middle_len];
배열의 가운데에 위치한 인덱스를 리턴해주었다.

 

코드
function solution(array) {
    array.sort((a,b) => a===b ? 0 : a>b? -1 : 1);
    var middle_len = Math.floor((array.length) / 2);
    return array[middle_len];
}

 

느낀점

처음에 Math.floor((array.length) / 2)+1을 해줘서 정답이 틀렸다.

아!! 배열의 인덱스느 0부터 시작이여서 그렇구나 하고 바로 +1을 지워줬다. ㅎㅎㅋㅋ