거누의 개발노트

[파이썬] 1464. Maximum Product of Two Elements in an Array - 리트코드 본문

코딩테스트

[파이썬] 1464. Maximum Product of Two Elements in an Array - 리트코드

Gogozzi 2022. 5. 25. 18:37
반응형

문제

정수 배열에서 (첫번째 최대값-1)*(두번째 최대값-1)을 해주는 프로그램을 작성.

입력

Input: nums = [3,4,5,2]

출력

Output: 12 

# (5-1)*(4-1)

작성한 코드1

def maxProduct(nums: List[int]) -> int:
    n = sorted(nums, reverse=True)
    return (n[0]-1)*(n[1]-1)

작성한 코드2

def maxProduct2(nums: List[int]) -> int:
    h = heapq.nlargest(2, nums)
    return (h[0] - 1) * (h[1] - 1)

list를 sort 할 때 는 시간 복잡도가 O(NlogN) 이고, heapq는 push, pop 할 때 O(logN) 이여서 힙이 빠르다는걸 알 수 있다.

https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/

 

Maximum Product of Two Elements in an Array - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

반응형
Comments