특이한 정렬 - 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 쓰면 이렇게 깔끔하게 되네요.

 


 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

다음에 올 숫자 - 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