최대 1 분 소요

문제

정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴

입력

number 타입을 요소로 갖는 임의의 배열

출력

number 타입을 리턴

주의사항

  • 입력으로 주어진 배열은 중첩되지 않은 1차원 배열
  • 배열의 요소는 음수와 0을 포함하는 정수
  • 배열의 길이는 3 이상

해결과정

  1. 입력된 배열을 내림차순으로 정렬
  2. 계산값을 저장할 변수 선언(cal1, cal2)
  3. 배열에 음수가 없으면 배열의 앞 수 3개 곱한 값 리턴(cal1)
  4. 배열의 끝 수 2개가 음수면 cal1 과 배열의 끝 수 2개와 맨 앞 수 곱한 값(cal2) 비교
  5. 가장 큰 값 리턴
const largestProductOfThree = function (arr) {
  // TODO: 여기에 코드를 작성합니다.
  arr.sort((a, b) => b - a)
  let cal1 = 0;
  let cal2 = 0
  for(let i = 0; i<arr.length; i++){
    if(arr[arr.length-1] < 0 && arr[arr.length-2] < 0){
      cal1 = arr[0] * arr[arr.length-1] * arr[arr.length-2]
    }  
  }
  cal2 = arr[0] * arr[1] * arr[2]
  return Math.max(cal1, cal2)
};