Coding 🖐🏻/javascript

JS | arr.sort 정렬 메소드 사용하기 오름차순 내림차순 | 프로그래머스 중앙값 구하기

김가마 2023. 3. 14. 20:15

정렬 하기 위해서는 sort 메소드를 사용한다.

→ arr.sort () 

배열을 재 정렬해 주는메소드 이다.

그럼 

→ arr.sort () 로 숫자로 오름차순 정렬하기

풀이 

A,b 두 요소를 전달하고 a-b로 크기를 비교해서 양수인지, 음수인지 0인지 만 본다.

A가> b 보다 크면 양수로 리턴 , 같으면 0 으로 , a가 <b보다 작으면 음수로 리턴 

 

내부에서 값들이 어떻게 처리되는지 를 보면 a가 작으면 a를 앞으로 보내고 , 0을 반환하면 그대로 있고 ,

a가 크면 b가 작은거니까 b를 앞으로 보내고 그래서 오름차순이 되는 거임 

 

 

arr.sort((a,b) => a-b) : sort() 메소드를 사용하여 배열을 오름차순으로 정렬합니다.

arr.sort((a,b) => b-a) : sort() 내림차순 

 


예제로 보겠다 

 

아래는 프로그래머스 중앙값  구하기 

function solution(arr) {
  return arr.sort((a, b) => a - b)[Math.floor(arr.length / 2)];
}

풀이  

 이 함수는 배열 arr 을 인자로 받아, 배열을 정렬한 후 가운데 값(중앙값)을 반환하는 함수입니다.

✅ sort함수로 배열을 오름차순으로 정렬합니다.

✅a-b 뺀 계산 결과가 📦가 0보다 작으면. a를 b보다 앞으로 정렬 , 아니면 뺀 계산 결과가 📦 0보가 크면 a를 b뒤로 정렬 

✅Math.floor 함수를 사용하여 소수점 이하를 버리고 정수값으로 만듭니다.

✅그래서 구한  인덱스를 배열에 접근하여 중앙값을 반환합니다.

✅ 정렬된 배열의 중앙값을 찾기 위해 배열의 길이를 2로 나눕니다.

 

이해 안된다면 

예를 들어, [1, 3, 5, 2, 4] 라는 배열 있다

, arr.sort((a,b) => a-b) 를 통해 [1, 2, 3, 4, 5]로 정렬됩니다.

그리고 Math.floor(arr.length / 2) 는 2를 반환하므로, arr[2] 를 통해 3을 반환합니다. 따라서 이 함수는 위 배열의 중앙값인 3을 반환합니다.