알고리즘 t7

이영광·2021년 7월 31일
0

알고리즘

목록 보기
5/16

largestProductOfThree
문제
정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴해야 합니다.

입력
인자 1 : arr
number 타입을 요소로 갖는 임의의 배열
출력
number 타입을 리턴해야 합니다.
주의사항
입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다.
배열의 요소는 음수와 0을 포함하는 정수입니다.
배열의 길이는 3 이상입니다.

1.우선 오른차순으로 정렬 시킨다
2.큰수들이 제일 뒤에 몰리게되고
3.음수가 있다면 앞정렬에 세워지게된다
4.양수일경우 제일 큰수들3개가 뒤에 세워지기때문에 뒤에걸 3개 곱해주면될것이고
5.음수가 포함일경우 제일뒤의 가장 큰수와 앞에 마이너스 2개를 곱해준다
6.음수 * 음수는 양수이니 만약에 그수가 크다면 그수가 나올것이다
7.양수엿을때의 수와 음수가 포함인 곱의 수를 Math.max 로 비교해서 둘중에 큰수를 고른다

const largestProductOfThree = function (arr) {
   let sorted = arr.sort((a,b)=>a-b)

  let array = sorted.length


  let plusMax = sorted[array-1]*sorted[array-2]*sorted[array-3]
  let minusMax = sorted[array-1]*sorted[0]*sorted[1]

  return Math.max(plusMax,minusMax)




};
profile
《REACT》《JAVASCRIPT 》 만지고있어욤

0개의 댓글