계발하는 개발자

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

🖥 Computer Science/Algorithm

[프로그래머스/Lv.0] 중앙값 구하기

dev_genie 2023. 11. 19. 02:08

⚙️ 문제 설명


⚠️ 제한 사항


🔃 입출력 


📜 입출력 예 설명


🧠 나의 풀이

function solution(array) {
    // 오름차순 정렬
    array.sort((a,b)=>{
        return a - b; 
    });
    
    // 중앙값 계산     
    let middle = Math.floor(array.length / 2);
    return array[middle];
}

 

🧐 풀이 설명

위 문제는 중앙값을 구하는 문제다. 중앙값은 항상 배열 가운데 위치한 값을 말한다.

예로 주어진 배열에서 볼 수 있듯이 두번째 예의 경우는 배열 값이 뒤죽박죽 정렬되어있다.

고로 sort 메서드를 이용해 배열을 오름차순으로(낮은 숫자부터 차례로) 다시 정렬시켜준다.

중앙값은 정렬된 배열 상태에서 더 잘 구해지기 때문!

sort는 기존 배열을 재정렬시켜주는 메서드기 때문에, 따로 변수에 담을 필요없이 기존 array 라는 이름의 배열에 접근하면 된다.

 

위 예제들에서 배열 길이는 모두 홀수로 주어졌는데

일반적으로 배열 길이가 홀수이거나 짝수일때 공통적으로 배열 길이 / 2 해주면 중앙값을 구할 수 있다. 

 

예1. 배열: [1, 2, 7, 10, 11]

  • 중앙값의 인덱스: Math.floor(5 / 2) = 2 (가운데 요소의 인덱스)
  • 중앙값: array[2] = 7

 

예2. 배열: [-1, 0, 9] (앞서 오름차순으로 재정렬 했으므로!)

  • 중앙값의 인덱스: Math.floor(3 / 2) = 1 (가운데 요소의 인덱스)
  • 따라서 중앙값: array[1] = 0

 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120811

 

 
LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!