[프로그래머스] 최댓값 만들기 (2)

butterbeetle·2023년 1월 27일
0

코딩테스트

목록 보기
26/132
post-thumbnail

문제설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

제한사항

  • -10,000 ≤ numbers의 원소 ≤ 10,000
  • 2 ≤ numbers 의 길이 ≤ 100

입출력 예

numbersresult
[1, 2, -3, 4, -5]15
[0, -31, 24, 10, 1, 9]240
[10, 20, 30, 5, 5, 20, 5]600

내 풀이

function solution(numbers) {
    const sortArr = numbers.sort((a,b)=>a-b)
    
    const value1 = sortArr.slice(0,2).reduce((acc,cur)=>{return acc*cur},1)
    const value2 = sortArr.slice(-2).reduce((acc,cur)=>{return acc*cur},1)
    
    return value1 > value2 ? value1 : value2
}

처음엔 reduce로 풀었는데 고작 2개 곱하는데
너무 투머치한거 같아서 생각해보니 이게 더 간단한거 같다

function solution(numbers) {
    const sortArr = numbers.sort((a,b)=>a-b)
    
    const value1 = sortArr[0] * sortArr[1];
    const value2 = sortArr[sortArr.length-2] * sortArr[sortArr.length-1]
    
    return value1 > value2 ? value1 : value2
}
profile
멍청이

0개의 댓글