expressionMatter.js (8kyu 86)

Codewars 알고리즘 풀이


Problem

  • Given three integers ‘a’, ‘b’, ‘c’, return the largest number obtained after inserting the following operators and brackets: +, *, ()
    • 주어진 세 개의 정수 ‘a’, ‘b’, ‘c’에 +, * 연산자와 괄호 ()를 삽입한 후, 가장 큰 수를 반환한다.


Solution 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() 메소드

값이 가장 큰 수를 반환한다.


Solution 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