정렬 규칙 설계

정렬 기준은 코드보다 먼저 문장으로 고정한다

`score` 내림차순처럼 1차 기준만 쓰면 동점 그룹의 순서가 흔들릴 수 있다. 화면별 정렬 불일치를 막으려면 동점 처리와 예외값 정책까지 같은 표에 적어야 한다.

학생 정렬 예제 기준표

1

1차 키: score 내림차순

점수가 높은 학생이 먼저 온다. Python에서는 `-score`, C++에서는 `a.score > b.score`로 옮길 수 있다.

2

동점 키: joined 오름차순

점수가 같으면 먼저 가입한 사용자를 앞에 둔다. 동점 규칙은 테스트 케이스로 고정한다.

key = (-row["score"], row["joined"])
3

예외값: None, 공백, 이상값 위치

결측치와 다국어 문자열 정책이 없으면 팀마다 정렬 결과를 다르게 해석한다.

구현 방식 선택

K

복합 튜플 키

기준이 명확하고 비교 함수 오류가 적어 우선 검토할 정렬 방식이다.

S

다단계 안정 정렬

2차 기준을 먼저, 1차 기준을 나중에 정렬해 이전 순서를 보존한다.

C

cmp_to_key

도메인 비교가 꼭 필요할 때만 쓰고 추이성, 동치성 오류를 검증한다.