⌨️ 프로그래머스/코딩테스트 입문

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

하나둘세현 2024. 7. 16. 15:06
728x90

문제

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

해결 과정

function solution(numbers) {
    let answer = [];
    let temp = 0;
    let temp2;
    let numSort;
    let realAnswer=1; 
   
    for(let i = 0; i <=1; i++) {
    numSort = numbers.sort(function(a, b) {
        return a-b;
    });
    temp = numSort.pop();
    temp2 = answer.push(temp);
    }

    for(let i = 0; i < answer.length; i++) {
        realAnswer *= answer[i];
    }
    return realAnswer;
}

 

numbers의 배열을 오름차순으로 정렬한다. 그뒤에 배열을 pop으로 꺼낸다음에 빈배열인 temp2에 저장해둔다.

그리고 push해서 저장한 배열을 반복하기 위해서 for문을 이용해 realAnswer에 곱해 저장해준다.

 

새롭게 알게된 점

function solution(numbers) {
    numbers.sort((a,b)=>b-a);
    return numbers[0]*numbers[1];
}

 

오름차순이 아닌 내림차순으로 배열을 정렬한다음 numbers의 첫번째와 두번째 원소를 곱해서 훨씬 간단하게 코드를 작성할 수 있었다.

 

728x90