[LeetCode] 628. Maximum Product of Three Numbers

Chobby·2025년 4월 20일
1

LeetCode

목록 보기
374/427

😎풀이

  1. nums를 내림차 순 정렬
  2. 가장 큰 세 요소와, 가장 큰 요소 및 가장 작은 두 요소를 각각의 배열로 준비
    2-1. slicedPos: 가장 큰 세 요소
    2-2. slicedNeg: 가장 작은 두 요소 + 가장 큰 요소
  3. 각각의 배열 요소를 모두 곱함
  4. 더 큰 결괏값을 반환함
function maximumProduct(nums: number[]): number {
    const sorted = nums.sort((a, b) => b - a)
    const slicedPos = sorted.slice(0, 3)
    const slicedNeg = [sorted[0], sorted.at(-1), sorted.at(-2)]
    const multPos = slicedPos.reduce((acc, cur) => acc * cur, 1)
    const multNeg = slicedNeg.reduce((acc, cur) => acc * cur, 1)
    return Math.max(multPos, multNeg)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글