[프로그래머스][파이썬] 최댓값 만들기 (2) - 수학 (Level 0)

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

◽ 문제 출처

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

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(numbers):
    numbers.sort()
    
    negative_max = numbers[0] * numbers[1]
    positive_max = numbers[-1] * numbers[-2]
    
    if negative_max > positive_max:
        return negative_max
    else:
        return positive_max
  • 음수와 음수를 곱하면 양수가 되니까, 음수가 있다면 최소값끼리도 곱해보고, 음수가 하나만 있다면 negative_max가 양수끼리 곱인 positive_max 보다 작을테니 비교를 통해 최댓값을 반환했다.

◽ 다른 사람 풀이

def solution(numbers):
    numbers.sort()
    return max(numbers[0] * numbers[1], numbers[-1] * numbers[-2])
  • 똑같은 방식인데, 큰 값을 구하면 되니 if 문 보다 max() 함수를 통해 간단히 풀이했다.

◽ 더 나아가기

  • 시간 복잡도는 둘 다 O(nlogn) 이지만 중간값을 확인해야한다면 위 풀이, 최종값만 빠르게 내도 된다면 아래 풀이를 사용하는게 좋아보인다.



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

profile
성장하고 싶은 개발자

0개의 댓글