[프로그래머스][파이썬] 가까운 수 - 조건문 (Level 0)

뻥튀기아이스크림·2025년 3월 18일
1
post-thumbnail

◽ 문제 출처

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

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(array, n):
    min_diff = float('inf')
    closest_num = None

    for num in array:
        diff = abs(num - n)

        if diff < min_diff:
            min_diff = diff
            closest_num = num
        elif diff == min_diff and num < closest_num:
            closest_num = num

    return closest_num
  • 최솟값을 찾기 위해 무한대로 초기화하고, 가장 가까운 수를 None 으로 초기화한다.
  • 배열을 순회하며 n과 현재 요소의 차이를 계산하여 작은 값을 가까운 수에 대입한다.

◽ 다른 사람 풀이

def solution(array, n):
    array.sort()
    temp = []

    for i in array :
        temp.append(abs(n - i))

    return array[temp.index(min(temp))]
  • 배열을 오름차순 정렬하고 차이를 계산하여 바로 임시 배열에 저장했다.
  • 차이를 담은 임시 배열의 최솟값의 인덱스를 주어진 배열의 인덱스로 활용했다.

◽ 더 나아가기

  • 만약 정렬되지 않은 배열이 주어진다면, 인덱스가 꼬이지 않을까? 라는 생각으로 복잡하게 최소 차이값을 구했다.
  • 근데 이번 문제는 인덱스가 아닌 값을 반환하는 문제니 괜찮았다.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글