회원의 나이와 이름을 정렬하여 출력해야 하는데 이 때 정렬 조건은 아래와 같습니다.
정렬의 시간복잡도는 O(NlogN)입니다. (참고 → 난쟁이의 키를 오름차순으로 출력하기 부분 해설)
이 문제에서 N 회원의 수이고, 최대 100,000이기 때문에 정렬시 연산이 약 500,000번 필요합니다.
🍯 TIP ! LogN은 컴퓨터공학에서는 밑이 2이지만, 코딩테스트 문제 풀이 시 10으로 계산해도 무방합니다. 이 문제에서 Log(100,000)은 약 5로 계산하면 되고, O(NlogN)은 5 * 100,000 = 500,000번의 연산으로 계산됩니다.
이제 두 가지 조건을 모두 만족시키는 정렬을 어떻게 구현할지 고민해봅시다.
우선 문제의 input을 2차원 배열에 넣고 생각해봅시다.
일반적으로 정렬 함수에 아무런 조건을 지정하지 않고 다차원 배열을 정렬 할 경우 정렬 우선순위가 앞의 열부터 생깁니다.
(1열을 기준으로 정렬 , 1열에 같은 값이 존재 할 시 2열을 기준으로 정렬)
예를 들어보면
[[1,2] , [3,1], [2,1] ,[2,2]]
이런 2차원 배열이 있을 경우
[[1,2] , [2,1] , [2,2] , [3,1]]