largestProductOfThree

현채은·2023년 4월 12일
0
post-thumbnail

💡 문제

입출력 예시

let output = largestProductOfThree([2, 1, 3, 7]);
console.log(output); // --> 42 (= 2 * 3 * 7)

output = largestProductOfThree([-1, 2, -5, 7]);
console.log(output); // --> 35 (= -1 * -5 * 7)

👏🏻 내가 쓴 코드

const largestProductOfThree = function (arr) {
  // 입력: 정수를 요소로 갖는 배열 -> 3개의 요소를 곱해 나올 수 있는 최대값 리턴
  const sorted = arr.slice().sort((a,b) => a-b) // 오름차순 정렬 
  const len = arr.length // 배열의 길이를 변수에 저장 
  // 음수가 있는 경우와 없는 경우로 나눔
  // 음수가 없는 경우 -> 오름차순 정렬 후 가장 뒤에 3개 요소의 곱
  const result1 = sorted[len-1] * sorted[len-2] * sorted[len-3] 
  // 음수가 있는 경우 -> 첫번째 요소(-) * 두번째 요소(-)  * 마지막 요소(+) 
  const result2 = sorted[len-1] * sorted[0] * sorted[1] 
  // 두 결과 중 가장 큰 값을 return
  return Math.max(result1,result2);
};

💡 알아두기

  • Array.prototype.sort()

    기본값은 해당 숫자의 앞자리 수의 크기에 따라 정렬된다 ! ex> [11, 2, 3, 32, ... ]
    ➡️ 오름 차순으로 정렬하려면 ?

	arr.sort((a, b) => a - b)) // 오름차순
    arr.sort((a, b) => b - a)) // 내림차순
profile
프론트엔드 개발자

0개의 댓글