반응형
문제 설명: 정수 배열 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 |