📌 구해야 하는 정답

회원의 나이와 이름을 정렬하여 출력해야 하는데 이 때 정렬 조건은 아래와 같습니다.


📌 풀이 하기

1️⃣ 회원을 조건에 맞게 정렬하기

정렬의 시간복잡도는 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]]