반응형
중앙값 구하기
문제 설명
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 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)];
}반응형
'[IT] > [코테]' 카테고리의 다른 글
| [프로그래머스 코딩테스트 입문][JS] 피자 나눠 먹기 (1) (0) | 2024.01.11 |
|---|---|
| [프로그래머스 코딩테스트 입문][JS] 최빈값 구하기 (1) | 2024.01.11 |
| [프로그래머스 코딩테스트 입문][JS]나머지 구하기 (0) | 2024.01.06 |
| [프로그래머스 코딩테스트 입문][JS]배열 두배 만들기 (0) | 2024.01.06 |
| [프로그래머스 코딩테스트 입문][JS]분수의 덧셈 (0) | 2024.01.06 |