코딩_Python(Level.0)

[Level.0] 가까운 수

Hong's_Computer 2026. 3. 18. 09:58
반응형

문제 설명: 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 1 ≤ array의 원소 ≤ 100
  • 1 ≤ n ≤ 100
  • 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.

문제 해결

def solution(array, n):
    answer = []
    for arr in array:
        answer.append([abs(arr-n), arr])
    answer.sort()
    return answer[0][1]

def solution(array, n):
    return min(array, key= lambda x: (abs(x - n), x))

 

주석: min 함수의 key 인자에 다중 조건 튜플을 전달하여 최적의 값을 단일 순회로 탐색함. 1순위로 타겟과의 절대 거리(abs)를 비교하고 거리가 동일한 경우 2순위로 원본 값의 크기를 비교하여 "가장 가까우면서도 더 작은 수"를 O(N)의 효율로 추출함.

반응형

'코딩_Python(Level.0)' 카테고리의 다른 글

[Level.0] 조건에 맞게 수열 변환하기(2)  (0) 2026.03.19
[Level.0] 팩토리얼  (0) 2026.03.19
[Level.0] 진료순서 정하기  (0) 2026.03.18
[Level.0] 2의 영역  (0) 2026.03.18
[Level.0] 숨어있는 숫자의 덧셈(2)  (0) 2026.03.17