🖥 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