반응형
https://leetcode.com/problems/maximum-product-difference-between-two-pairs/
간단한 greedy 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
nums를 오름차순으로 정렬해줍니다.
📔 풀이과정
차이가 가장 커지기 위해서는 곱의 최댓값과 최솟값의 차이를 구하면 됩니다.
1. 곱이 가장 큰 경우: nums에서 최댓값과 두 번째로 큰 값을 곱하는 경우입니다. 즉, 오름차순으로 정렬했을 때 nums.size() - 1번째 값과 num.size() - 2번째 값을 곱하면 됩니다.
2. 곱이 가장 작은 경우: nums에서 최솟값과 두 번째로 작은 값을 곱하는 경우입니다.
📔 정답 출력 | 반환
1번 경우의 값에서 2번 경우의 값을 뺀 값을 반환합니다.
📕 Code
📔 C++
class Solution {
public:
int maxProductDifference(vector<int>& nums) {
sort(nums.begin(), nums.end());
int sz = nums.size();
return nums[sz-1] * nums[sz-2] - nums[1] * nums[0];
}
};
📔 Python
class Solution(object):
def maxProductDifference(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
return nums[-1] * nums[-2] - nums[0] * nums[1]
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Greedy' 카테고리의 다른 글
(Python3) - 프로그래머스(코딩테스트 입문) : 개미 군단 (0) | 2024.10.27 |
---|---|
(C++) - LeetCode (easy) 539. Minimum Time Difference (0) | 2024.09.17 |
(C++) - LeetCode (easy) 1005. Maximize Sum Of Array After K Negations (0) | 2023.09.21 |
(C++) - LeetCode (easy) 717. 1-bit and 2-bit Characters (0) | 2023.06.22 |
(C++) - LeetCode (easy) 121. Best Time to Buy and Sell Stock (0) | 2022.11.29 |