Algorithm largestProductOfThree
문제
정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴
입력
number
타입을 요소로 갖는 임의의 배열
출력
number
타입을 리턴
주의사항
- 입력으로 주어진 배열은 중첩되지 않은 1차원 배열
- 배열의 요소는 음수와 0을 포함하는 정수
- 배열의 길이는 3 이상
해결과정
- 입력된 배열을 내림차순으로 정렬
- 계산값을 저장할 변수 선언(
cal1
,cal2
) - 배열에 음수가 없으면 배열의 앞 수 3개 곱한 값 리턴(
cal1
) - 배열의 끝 수 2개가 음수면
cal1
과 배열의 끝 수 2개와 맨 앞 수 곱한 값(cal2
) 비교 - 가장 큰 값 리턴
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)
};