[JS] 최댓값 만들기 programmers sort 의 사용

0

코딩테스트

목록 보기
17/80
post-thumbnail

🎀 문제

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

🎀 내 답변

function solution(numbers) {
    let newArray = [];
     for(let i = 0; i < 2; i++){
        let maxNum = numbers.indexOf(Math.max(...numbers));
        newArray.push(numbers[maxNum]);
        numbers.splice(maxNum, 1);
     }
     return newArray[0] * newArray[1]
}
  1. 최댓값을 모아둘 빈 배열 newArray를 생성한다.
  2. for문을 돌리며 Math.max를 활용해 배열 속 최댓값의 index를 구한다.
    최댓값 2개만 구할 수 있도록 2번만 반복되도록 한다.
  3. 해당 index를 newArray에 넣어준다.
  4. 넣은 다음 배열에서 해당 Index를 삭제한다 (그 다음 최댓값을 구하기 위함)
  5. newArray 속 최댓값 두개를 곱해준 값을 return한다.

🎀 더 나은 답변

📌 sort의 사용

function solution(numbers) {
    numbers.sort((a,b)=>b-a);
    return numbers[0]*numbers[1];
}
  1. numbers 배열의 숫자를 sort를 활용하여 오름차순으로 정렬한다.
  2. numbers[0]과 numbers[1]을 곱한 값을 return한다.

아 이렇게 간결해질 수 있다니...

🎀 sort에 대해 더 알아보자

sort 관련 포스팅은 여기서 확인하세요.

profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글