728x90
📍 2차원 행렬 sort
2차원 행렬 각각의 두 값을 더해서 오름차순 / 내림차순으로 sort
하고 싶을 때 다음과 같이 작성할 수 있다. 만약, `arr[0]`끼리 같은 값이면 `arr[1]`을 비교하는 조건이 더해질땐 다음과 같이 사용 할 수 있다.
728x90
const arr = [
[6, 6],
[2, 2],
[4, 3],
[4, 5],
[10, 3],
]
// 오름차순
arr.sort((a, b) => a[0] + a[1] - (b[0] + b[1]))
console.log(arr)
👉🏽 [ [ 2, 2 ], [ 4, 3 ], [ 4, 5 ], [ 6, 6 ], [ 10, 3 ] ]
// 내림차순
arr.sort((a, b) => b[0] + b[1] - (a[0] + a[1]))
console.log(arr)
👉🏽 [ [ 10, 3 ], [ 6, 6 ], [ 4, 5 ], [ 4, 3 ], [ 2, 2 ] ]
// arr[0]이 같으면 arr[1] 기준으로 오름차순 정렬
arr.sort((a, b) => {
if (a[0] === b[0]) {
return a[1] - b[1]
} else {
return a[0] - b[0]
}
})
console.log(arr)
👉 [ [ 2, 2 ], [ 4, 3 ], [ 4, 5 ], [ 6, 6 ], [ 10, 3 ] ]
반응형
'Algorithm > 논리적사고(Logical Think)' 카테고리의 다른 글
[ 논리적사고 ] - 누적 값이 point보다 높은지 낮은지 비교하고 추가하기 (0) | 2021.09.08 |
---|---|
[ 논리적사고 ] - 배열 중간에 있는 값을 맨 앞으로 옮기기 (0) | 2021.09.03 |
[ 논리적사고 ] - string함수 사용하지 않고 자연수 거꾸로 뒤집기 (0) | 2021.08.20 |
[ 논리적사고 ] - 자연수의 자릿수 합 구하기 (0) | 2021.08.20 |
[ 논리적사고 ] - number 함수를 사용하지 않고 순서 유지한 채로 number 만들기 (0) | 2021.08.20 |
댓글