<입문 100문제> Day 20 - 수학, 시뮬레이션, 문자열, 사칙연산
문제
풀이
- 단순히 최댓값을 두 번 구하면 된다고 생각하였다.
문제를 대충 읽고 대충 풀어서 음수의 곱이 양수가 된다는 것을 전혀 고려하지 않은 것이 패착이다.
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);
}
- 이를 고려하여 다시 풀이하였다
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;
}
해답