문제
https://leetcode.com/problems/maximum-product-of-three-numbers
풀이
정수형 배열 nums 안에서 세 개의 수를 뽑아 곱한 값 중 최대값을 리턴하면 된다.
LeetCode 3536 3536번 문제처럼 nums 배열을 정렬하면 된다. 다만 이번에는 3개의 수를 뽑아야 하기에, 음수, 음수, 양수도 정답의 후보가 될 수 있다.
따라서 정답의 후보는 다음과 같다.
- 가장 작은 값 2개와 가장 큰 값 1개를 곱한 값
- 가장 큰 값 3개를 곱한 값
이 두 수를 계산한 다음, 대소를 비교해서 리턴하면 된다.
코드
class Solution:
def maximumProduct(self, nums: List[int]) -> int:
nums.sort()
return max(nums[-1] * nums[-2] * nums[-3],nums[0] * nums[1] * nums[-1])