Algorithm
Level 0
181930

181930

Link

https://school.programmers.co.kr/learn/courses/30/lessons/181930 (opens in a new tab)

Answer

JavaScript

function solution(a, b, c) {
  let sum1 = a + b + c;
  let sum2 = a * a + b * b + c * c;
  let sum3 = a ** 3 + b ** 3 + c ** 3;
 
  if (a === b && b === c) return sum1 * sum2 * sum3;
  else if (a === b || a === c || b === c) return sum1 * sum2;
  else return sum1;
}
const solution = (a, b, c) => {
  const set = new Set([a, b, c]);
  switch ([...set].length) {
    case 1:
      return calculate([a, b, c], 3);
    case 2:
      return calculate([a, b, c], 2);
    case 3:
      return calculate([a, b, c]);
  }
};
 
const calculate = (inc, n = 1) => {
  const [a, b, c] = inc;
  let result = 1;
  for (let i = 1; i <= n; i++) {
    result *= Math.pow(a, i) + Math.pow(b, i) + Math.pow(c, i);
  }
 
  return result;
};
function solution(a, b, c) {
  const dsttCnt = new Set([a, b, c]).size;
 
  switch (dsttCnt) {
    case 3:
      return a + b + c;
    case 2:
      return (a + b + c) * (a ** 2 + b ** 2 + c ** 2);
    case 1:
      return (
        (a + b + c) * (a ** 2 + b ** 2 + c ** 2) * (a ** 3 + b ** 3 + c ** 3)
      );
  }
}