본문 바로가기
코딩테스트/Solving exercise

[프로그래머스/Lv.0] 가까운 수

by _Bree_ 2023. 7. 27.
반응형

문제링크)

https://school.programmers.co.kr/learn/courses/30/lessons/120890

 

프로그래머스

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

programmers.co.kr

 

내 풀이)

def solution(array, n):
    li = []
    for i,v in enumerate(array):
        if min(list(map(lambda x : abs(x - n) , array))) == abs(v - n) :
            li.append(v)
    return min(li)

 

다른 사람 풀이)

solution=lambda a,n:sorted(a,key=lambda x:(abs(x-n),x))[0]

 

🐣알게된 점)

sorted 함수에 첫 번째 인자로 list와 같은 enumerate 객체를 넣고, 두 번째 인자로 key에 원하는 조건식을 쓸 수 있다.

여기서 lambda x 뒤에 튜플형으로 (1번째, 2번째) 인자를 넣는데, 1번째 인자는 가장 기본이 되는 sort 규칙, 2번째 인자는 후 순위 규칙을 넣을 수 있다. 

반응형

댓글