사진찍는 개발자📸👩‍💻

[프로그래머스/파이썬] 가까운 수 본문

develop/Python

[프로그래머스/파이썬] 가까운 수

hsleeee 2023. 3. 29. 15:01
반응형
SMALL

[문제]

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

[답안]

def solution(array, n):
    gap = []
    array.sort()
    for i in array:
        gap.append(abs(n-i))
        
    answer = [array[gap.index(min(gap))]]

    return min(answer) if len(answer) > 1 else answer[0]

[풀이]

array를 오름차순으로 sort하고

array를 돌면서 n - i 의 절댓값을 구한 뒤 gap list에 추가한다.

답은 array안의 gap이 가장 작은 값의 인덱스를 가진 값이다.

만약 array: [-1, 1, 3] n: 0 인 값을 생각하면 -1과 1의 gap은 같기 때문에 answer list에 여러개의 답이 있을 수 있다.

따라서 answer 리스트의 길이를 구하여 1 보다 크다면 answer 리스트의 가장 작은 값을, 아니라면 answer 리스트의 0 번째를 리턴하여 답을 구했다.

 

[문제 풀어보기]

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

반응형
LIST