Алгоритм кодовых войн

Проблема

Даны три целых числа 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