[Lv.0] 최댓값 만들기 (2)

01수정·2022년 12월 1일
0
post-thumbnail
post-custom-banner

<입문 100문제> Day 20 - 수학, 시뮬레이션, 문자열, 사칙연산

문제


풀이

  1. 단순히 최댓값을 두 번 구하면 된다고 생각하였다.
    문제를 대충 읽고 대충 풀어서 음수의 곱이 양수가 된다는 것을 전혀 고려하지 않은 것이 패착이다.
function solution(numbers) {
    let max_num = Math.max(...numbers);
    let new_numbers = numbers.filter(item => item !== max_num);
    
    return max_num * Math.max(...new_numbers);
}
  1. 이를 고려하여 다시 풀이하였다
function solution(numbers) {
    numbers.sort((a, b) => b-a);
    let head_max = numbers[0] * numbers[1];
    let tail_max = numbers[numbers.length-2] * numbers[numbers.length-1];
    
    return head_max > tail_max ? head_max : tail_max;
}

해답

profile
새싹 FE 개발자
post-custom-banner

0개의 댓글