거누의 개발노트
[파이썬] 1464. Maximum Product of Two Elements in an Array - 리트코드 본문
반응형
문제
정수 배열에서 (첫번째 최대값-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/
반응형
'코딩테스트' 카테고리의 다른 글
[파이썬] 215. Kth Largest Element in an Array - 리트코드 (0) | 2022.05.25 |
---|---|
[파이썬] 1337. The K Weakest Rows in a Matrix - 리트코드 (0) | 2022.05.25 |
[파이썬] 297. Serialize and Deserialize Binary Tree - 리트코드 (0) | 2022.05.24 |
[파이썬] 700. Search in a Binary Search Tree - 리트코드 (0) | 2022.05.24 |
[파이썬] 938. Range Sum of BST - 리트코드 (0) | 2022.05.24 |
Comments