문제(출처: 프로그래머스)

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

 

▶ 내가 푼 방식

//내가 작성한 코드
function solution(numbers) {
    let answer = 0;
    numbers.sort(function(a, b)  {
        if(a > b) return -1;
        if(a === b) return 0;
        if(a < b) return 1;
    });
    return numbers[0]*numbers[1];
}

 

 다른 유저가 푼 방식

// 유저 1  : 다른 정렬방식
function solution(numbers) {
    let [a, b] = numbers.sort((a,b) => b - a);
    return a * b;
}


// 유저 2 : 내가 해보고 싶었던 방식
function solution(numbers) {
    const max1 = Math.max(numbers)
    const numbers = numbers.splice(numbers.indexOf(max1), 1);
    const max2 = Math.max(numbers)

    return max1 * max2;
}

 

 배운 것들

     - 첫번째 유저의 정렬방식

     -  배열에서 특정 요소의 인덱스를 쉽게 차는 방법 : arr.indexOf(value)

+ Recent posts