✅문제 설명
정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요.
✅제한사항
1 ≤ n ≤ 10,000
1 ≤ numlist의 원소 ≤ 10,000
1 ≤ numlist의 길이 ≤ 100
numlist는 중복된 원소를 갖지 않습니다.
def solution(numlist, n):
numlist = sorted(numlist, reverse = True)
numlist = sorted(numlist, key = lambda x : abs(n-x))
return numlist
def solution(numlist, n):
answer = sorted(numlist,key = lambda x : (abs(x-n), n-x))
return answer
key에 n과의 거리와 n과의 차이를 기준으로 주어 앞의 조건이 동일하면 뒤의 조건을 이용하여 정렬했다.
💡lambda key에 요소를 리스트 혹은 튜플로 두 개 이상 줄 수 있다.
앞의 값이 같을 때, 뒤의 값을 이용해서 나열한다. 요소 하나이고 값이 같을 때는 먼저 처리된 수가 먼저 나열된다다(인덱스가 작은 것).