728x90
반응형
5일차 문제에서 알아두면 좋은 코드가 있어서 정리했다.
배열안에 여러 개의 배열들이 있고, 각 배열의 두 번째 값을 기준으로 내림차순 정렬하는데, 만약 두 번째 값이 같은 값인 경우에 각 배열의 첫 번째 값을 기준으로 내림차순 정렬을 하고 싶었다.
이를 해결하기 위한 아주 간단한 방법이 있다.
예를 들어 arr이 아래와 같을 때, sort를 사용하여 정렬시키면 원하는 결과값을 가져올 수 있다.
let arr = [
[ 1, 1 ], [ 2, 1 ],
[ 3, 2 ], [ 4, 1 ],
[ 5, 2 ], [ 6, 2 ],
[ 7, 3 ], [ 8, 1 ]
]
arr.sort((a, b) => b[1] - a[1] || b[0] - a[0]);
console.log(arr) /* [
[ 7, 3 ], [ 6, 2 ],
[ 5, 2 ], [ 3, 2 ],
[ 8, 1 ], [ 4, 1 ],
[ 2, 1 ], [ 1, 1 ]
] */
arr.sort((a, b) => b[1] - a[1] || b[0] - a[0]); 식은 아래와 동일하다.
if(b[0] - a[0] !== 0) {
return b[0] - a[0];
} else {
return b[1] - a[1];
}
참고자료
- 구름톤 프로젝트 매니징 자료
728x90
반응형
'etc > [구름] 구름톤 챌린지' 카테고리의 다른 글
구름톤 챌린지 4주차 학습 일기 - BFS(모든 섬 방문하는 문제) (0) | 2023.09.06 |
---|---|
구름톤 챌린지 3주차 학습 일기 - DP(동적 계획법) (2) | 2023.08.29 |
구름톤 챌린지 2주차 학습 일기 v2 (2차원 배열 완전 탐색, dx/dy 기법) (0) | 2023.08.23 |
구름톤 챌린지 2주차 학습 일기 (0) | 2023.08.22 |
구름톤 챌린지 1주차 학습 일기 (0) | 2023.08.16 |
댓글