특이한 정렬 - Python
2023. 10. 1. 02:03ㆍ공부/📝 프로그래머스
def solution(numlist, n):
answer = []
temp_list = []
for item in numlist:
temp_list.append(abs(item - n))
temp_list.sort()
for item in temp_list:
if n + item in numlist:
answer.append(n + item)
del numlist[numlist.index(n + item)]
else:
answer.append(n - item)
del numlist[numlist.index(n - item)]
return answer
# Test Cases
print(solution([1, 2, 3, 4, 5, 6], 4))
print("="*50)
print(solution([10000, 20, 36, 47, 40, 6, 10, 7000], 30))
print("="*50)
위와 같이 풀었습니다.
def solution(numlist, n):
answer = sorted(numlist,key = lambda x : (abs(x-n), n-x))
return answer
이렇게 할까 했었는데 lambda 쓰면 이렇게 깔끔하게 되네요.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
다음에 올 숫자 - Python (0) | 2023.10.01 |
---|---|
OX퀴즈 - Python (0) | 2023.10.01 |
문자열 밀기 - Python (0) | 2023.09.30 |
유한소수 판별하기 - Python (0) | 2023.09.30 |
치킨 쿠폰 - Python (0) | 2023.09.30 |