본문 바로가기

Algorithm/Sorting

(C++) - LeetCode (easy) 628. Maximum Product of Three Numbers

반응형

https://leetcode.com/problems/maximum-product-of-three-numbers/description/

 

Maximum Product of Three Numbers - LeetCode

Can you solve this real interview question? Maximum Product of Three Numbers - Given an integer array nums, find three numbers whose product is maximum and return the maximum product.   Example 1: Input: nums = [1,2,3] Output: 6 Example 2: Input: nums = [

leetcode.com

정렬 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

내림차순으로 nums를 정렬해줍니다.

📔 풀이과정

정렬된 nums = {6, 5, 4, -1, -2} 로 생각해보면 음수 2개의 곱은 양수이므로 두 경우를 비교해 큰 수를 반환해야 합니다.

max(6 * 5 * 4, 6 * -1 * -2)

📔 정답 출력 | 반환

max(가장 큰 * 두 번째 큰 * 세 번째 큰 수끼리의 곱, 가장 큰 * 가장 작은 * 두 번째로 작은 수끼리의 곱)을 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    int maximumProduct(vector<int>& nums) {
        sort(nums.rbegin(), nums.rend());
        int nSize = nums.size();
        return max(nums[0] * nums[1] * nums[2], nums[0] * nums[nSize-1] * nums[nSize-2]);
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.