프로그래머스

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

jjangsh 2024. 7. 26. 20:30

문제 :

 

 

내 풀이 : 

function solution(numbers) {
    let max = Math.max(...numbers);
    
    let index = numbers.indexOf(max);
    
    numbers.splice(index, 1);
    
    return max * Math.max(...numbers);
}

 

Math.max를 사용하여 numbers에서 최댓값을 뽑아 max변수에 저장하고,

 

indexOf를 사용하여 max의 index값을 뽑아낸 후, numbers에서 max를 지웠다.

 

만약 numbers가 [1,2,3,4,5] 라고 가정하면 위 과정을 통해 최댓값인 5는 지워지고 [1,2,3,4]만 남았을 것이다.

 

그럼 미리 뽑아놓은 max인 5와 max가 뽑힌 후 최대값인 4를 곱하면 numbers의 원소 중 두 개를 곱해 만들 수 있는 최대값이다.

 

 

다른 사람의 풀이 : 

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

 

numbers를 내림차순 정렬하고(배열의 첫 번째 요소가 가장 크고, 두 번째 요소가 그 다음으로 큰 값이 됨) 첫 번째 요소와 두 번째 요소를 곱하여 반환하는 코드이다.

 

내림차순으로 정렬은 생각도 하지 못했는데 위 코드가 훨씬 간결하게 짜여졌다.