---C++ 역량 강화---/STL 공부

stable_sort

코리아탑클 2024. 6. 4. 19:17

[[[문제]]]

person객체에는 나이와 이름의 첫 글자가 들어있다.

이름순으로 정렬한 후 나이순으로 정렬하고, 동일한 나이에서 이름이 순서대로 유지되도록 하라.

 

[[[관찰]]]

1. 이니셜을 먼저 오름차순으로 정렬한다.

2. 나이를 stable_sort로 정렬한다.

3. 나이가 정렬이 된 상태이며 동일한 나이에서는 이니셜순으로 정렬되어 있는 것을 확인 가능하다.

4. 자격이 동등한 녀석들의 순서를 흩뜨러뜨리지 않는다.

무슨 뜻이냐, 이전에 이니셜을 먼저 정렬을 시켜놨기 때문에 나이를 정렬했을 때 같은 나이에서는 이니셜이 뒤죽박죽 섞이지 않는다는 것이다.

알고리즘을 공부했다면 쉽게 알 수 있다.

 

(간단한 예시)

이니셜 순으로 정렬했을 때

10 - a / 20 - b / 30 - d / 20 - f / 10 - q / 30 - t 

 

이 상태로 나이순으로 stable_sort 했을 때 정말로 순서를 흩뜨리지 않는지 보자

10 - a / 10 - q / 20 - b / 20 - f / 30 - d /30 - t

 

결론: 뒤죽박죽 섞이지 않았다. 

 

학습 장소: 한국공학대학교 게임공학과 수업

참고: https://en.cppreference.com/w/

'---C++ 역량 강화--- > STL 공부' 카테고리의 다른 글

distance  (0) 2024.06.04
copy  (0) 2024.06.04
uniform initialization  (0) 2024.06.03
string class 문자열 합치기  (0) 2024.06.03
to_string, to_wstring  (0) 2024.06.03