나의 풀이
sort() 메서드를 통해 오름차순으로 배열을 정렬한 뒤, 배열의 개수를 절반으로 나누고 정수로 만들어 인덱스를 출력했다.
function solution(array) { let arr = [...array].sort((a,b)=> a - b); let i = Math.floor(array.length / 2); return arr[i]; }
sort() 메서드
sort() 메서드는 요소를 문자열로 변환한 다음 유니코드 순서에 따라 정렬하는 메서드이다.
이를 숫자 배열에 사용하면 예상치 못한 결과가 나올 수 있다.
(예를들어, 숫자 10 이 숫자 2보다 앞서서 정렬됨)
이때, sort 메서드에 콜백 함수를 전달하여 숫자 배열을 올바르게 정렬 할 수 있다.
sort ( ( a, b ) => a - b )
sort 메서드에 콜백 함수 ( a, b )는 두 요소 a 와 b를 비교하는 역할을 한다.
a 와 b를 비교하여 반환되는 값이 음수값인지, 양수값인지, 0 인지에 따라 요소의 정렬 순서가 결정된다.
a - b 반환 값 | 반환 값의 의미 | 정렬 순서 |
음수 | a 가 b보다 작다 ( a < b ) | a가 b보다 앞에 위치 |
양수 | a가 b보다 크다 ( a > b ) | a가 b보다 뒤에 위치 |
0 | a와 b가 같다 ( a === b) | 순서 유지 |
다음은 sort()를 사용한 예시이다.
const people = [ { name: "Alice", age: 25 }, { name: "Bob", age: 20 }, { name: "Charlie", age: 30 } ]; // 나이 오름차순 정렬 people.sort((a, b) => a.age - b.age); console.log(people); // 출력: // [ // { name: "Bob", age: 20 }, // { name: "Alice", age: 25 }, // { name: "Charlie", age: 30 } // ]
a.age와 b.age를 비교하여, 두 값의 차이를 기준으로 정렬했다.
'자바스크립트(JavaScript) > 프로그래머스 문제풀기' 카테고리의 다른 글
[programmers - js] 모음 제거 / 정규표현식 캡처링, includes, replaceAll (0) | 2024.12.16 |
---|---|
[programmers - js] 짝수, 홀수 개수 / for...of 반복문 (0) | 2024.12.16 |
[programmers - js] 배열의 유사도 (0) | 2024.12.16 |
[programmers - js] 문자열 뒤집기 (0) | 2024.12.16 |
[programmers - js] 세균증식 / 시프트 연산자(<<) (0) | 2024.12.16 |