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
'develop > Python' 카테고리의 다른 글
[프로그래머스/파이썬] 한 번만 등장한 문자 (0) | 2023.03.30 |
---|---|
[프로그래머스/파이썬] 진료순서 정하기 (0) | 2023.03.30 |
[프로그래머스/파이썬] k의 개수 (0) | 2023.03.29 |
[프로그래머스/파이썬] 2차원으로 만들기 (0) | 2023.03.29 |
[프로그래머스/파이썬] 팩토리얼 (0) | 2023.03.29 |