Алгоритм кодовых войн
Проблема
Даны три целых числа a, b, c, вернуть наибольшее число, полученное после вставки следующих операторов и скобок: +, *, ()
주어진 세 개의 정수 a, b, c에 +, * 연산자와 괄호 ()를 삽입한 후, 가장 큰 수를 반환해라.
Решение 01
function expressionMatter(a, b, c) { return Math.max( a + b + c, a + b * c, (a + b) * c, a * b * c, a * b + c, a * (b + c), ); } expressionMatter(2, 2, 2); // 8 expressionMatter(1, 2, 3); // 9
Math.max() Предварительный просмотр
값이 가장 큰 수를 반환한다.
Решение 02
function expressionMatter(a, b, c) { let values = [ (a + b + c), (a + b * c), ((a + b) * c), (a * b * c), (a * b + c), (a * (b + c)), ]; return Math.max(...values); } expressionMatter(2, 2, 2); // 8 expressionMatter(1, 2, 3); // 9