7주차 · 정렬
쉬움정렬구현

다중 기준 정렬

각 원소가 [이름, 나이, 점수] 형태인 배열 people이 주어져요. 다음 기준을 순서대로 적용해 정렬한 뒤, 정렬된 이름만 담은 배열을 반환해요.

1) 점수가 높은 사람이 앞에 와요. 2) 점수가 같으면 나이가 어린 사람이 앞에 와요. 3) 나이도 같으면 이름 사전순으로 앞에 와요.

이름은 서로 다르니까 정렬 결과는 유일하게 정해져요.

예시

예시 1
예시 2

제한 사항

  • 1 ≤ people.length ≤ 10,000
  • 0 ≤ 나이 ≤ 120, 0 ≤ 점수 ≤ 100
  • 이름은 소문자 알파벳으로 이루어지며 서로 달라요.
JavaScript는 비교자에서 b.score - a.score || a.age - b.age || a.name.localeCompare(b.name)처럼 ||로 다음 기준으로 넘어가요. Python은 key=lambda p: (-p[2], p[1], p[0])로 튜플을 돌려주면 돼요.
javascript
function multiKeySort(people) {
return [...people]
.sort((a, b) => b[2] - a[2] || a[1] - b[1] || (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0))
.map((p) => p[0]);
}
에디터를 불러오고 있어요…
코드를 작성하고를 눌러 예시 테스트를 확인해 보세요.