문제
정수가 담긴 배열 numlist가 주어질 때 정수 n을 기준으로 n과 가까운 수 부터 정렬하고 거리가 같다면 더 큰 수를 앞에 오도록 리턴
나의 풀이
function solution(numlist, n) {
const sortedList = numlist.sort((a, b) => {
const distA = Math.abs(n - a);
const distB = Math.abs(n - b);
if (distA === distB) {
return b - a;
}
return distA - distB;
});
return sortedList;
}
- sort 함수를 사용해 정렬
- distA 와 B는 n으로 부터 각 요소의 거리
- A와 B를 비교하여 거리가 같으면 더 큰 수를 앞에 둔다 b - a
- 거리가 다르면 더 작은 숙서대로 정렬 a - b
다른 풀이
function solution(numlist, n) {
return numlist.sort((a, b) => Math.abs(a - n) - Math.abs(b - n) || b - a);
}
- sort 이용
- (a - n) 과 (b - n) 거리를 비교해 정렬
- 거리가 같으면 b - a를 반환
'기초다지기 > JS 코딩테스트' 카테고리의 다른 글
javaScript 문자열 2개씩 제거하기 (0) | 2023.11.13 |
---|---|
javaScript 문자열 밀기 (0) | 2023.11.10 |
javaScript 변수 문자열 n번째 다음 문자열 구하기 (0) | 2023.11.09 |
javaScript 2차원 배열중 큰 수 구하기 (1) | 2023.11.09 |
javaScript 정수 배열 조건문 (1) | 2023.11.08 |